কম্পিউটার টিউটোরিয়াল

পাইথন পান্ডাস - DateTimeIndex-এ টাইমস্ট্যাম্পকে নিকটতম ফ্রিকোয়েন্সিতে স্ন্যাপ করুন

পাইথন পান্ডাসে DateTimeIndex-এ টাইমস্ট্যাম্পগুলোকে নিকটতম فراিকোয়েন্সি (nearest occurring frequency) এ স্ন্যাপ (snap) করতে DateTimeIndex.snap() মেথড ব্যবহার করা হয়। freq প্যারামিটার দিয়ে ফ্রিকোয়েন্সি নির্দিষ্ট করা হয়।

প্রয়োজনীয় লাইব্রেরি ইম্পোর্ট করুন

import pandas as pd

DateTimeIndex তৈরি করুন

৬টি পিরিয়ড, দিন ফ্রিকোয়েন্সি (D), টাইমজোন: Australia/Adelaide

datetimeindex = pd.date_range('2021-10-20 02:30:50', periods=6, tz='Australia/Adelaide', freq='D')

DateTimeIndex প্রদর্শন করুন

print("DateTimeIndex...\n", datetimeindex)

মাসের শেষ দিনে (Month End) স্ন্যাপ করুন

print("\nSnap time stamps to nearest occurring frequency...\n", datetimeindex.snap(freq='M'))

সম্পূর্ণ উদাহরণ

import pandas as pd

# DateTimeIndex তৈরি
datetimeindex = pd.date_range('2021-10-20 02:30:50', periods=6, tz='Australia/Adelaide', freq='D')

# DateTimeIndex প্রদর্শন
print("DateTimeIndex...\n", datetimeindex)

# ফ্রিকোয়েন্সি দেখুন
print("\nDateTimeIndex frequency...\n", datetimeindex.freq)

# মাসের শেষ দিনে স্ন্যাপ করুন
print("\nSnap time stamps to nearest occurring frequency...\n", datetimeindex.snap(freq='M'))

আউটপুট

DateTimeIndex...
DatetimeIndex(['2021-10-20 02:30:50+10:30', '2021-10-21 02:30:50+10:30', '2021-10-22 02:30:50+10:30', '2021-10-23 02:30:50+10:30', '2021-10-24 02:30:50+10:30', '2021-10-25 02:30:50+10:30'], dtype='datetime64[ns, Australia/Adelaide]', freq='D')
DateTimeIndex frequency...

Snap time stamps to nearest occurring frequency...
DatetimeIndex(['2021-10-31 02:30:50+10:30', '2021-10-31 02:30:50+10:30', '2021-10-31 02:30:50+10:30', '2021-10-31 02:30:50+10:30', '2021-10-31 02:30:50+10:30', '2021-10-31 02:30:50+10:30'], dtype='datetime64[ns, Australia/Adelaide]', freq=None)

ব্যাখ্যা

  • মূল ডেটা: ২০ অক্টোবর থেকে ২৫ অক্টোবর (প্রতিদিন একটা)
  • snap(freq='M') -> 'M' মানে Month End (মাসের শেষ দিন)
  • অক্টোবরের শেষ দিন ৩১ অক্টোবর -> সকল টাইমস্ট্যাম্প ৩১ অক্টোবর ০২:৩০:৫০-এ স্ন্যাপ হয়েছে
  • সময় কম্পোনেন্ট (০২:৩০:৫০) অপরিবর্তিত থাকে, শুধু তারিখ পরিবর্তন হয়
  • ফলাফলে freq=None কারণ স্ন্যাপিংয়ের পর রেগুলার ফ্রিকোয়েন্সি নেই

snap() vs round()

মেথডব্যবহার
snap(freq='M')নিকটতম ফ্রিকোয়েন্সি বাউন্ডারি (যেমন মাসের শেষ) এ স্ন্যাপ করে
round(freq='H')নিকটতম ঘণ্টা/মিনিট/সেকেন্ডে রাউন্ড করে

সাধারণ ফ্রিকোয়েন্সি স্ট্রিং: 'D' (দিন), 'W' (সপ্তাহ), 'M' (মাস এন্ড), 'Q' (কোয়ার্টার এন্ড), 'A'/'Y' (বছর এন্ড)।

নোট: snap() মেথডটি পান্ডাসের নতুন ভার্সনে ডিপ্রিকেটেড হতে পারে; বিকল্প হিসেবে to_period(freq).to_timestamp() ব্যবহার করা যেতে পারে।

  1. পাইথন প্যান্ডাস - DateTimeIndex থেকে সেকেন্ড বের করুন

  2. পাইথন প্যান্ডাস - DateTimeIndex থেকে মিনিট বের করুন

  3. পাইথন প্যান্ডাস - DateTimeIndex থেকে ঘন্টা বের করুন

  4. পাইথন - পান্ডাস ডেটাফ্রেমকে সময় অনুযায়ী ফিল্টার করুন