পাইথন পান্ডাসে 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() ব্যবহার করা যেতে পারে।