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

পাইথন পান্ডাস - DateTimeIndex কে আওয়ার ফ্রিকোয়েন্সি দিয়ে রাউন্ড করুন

পাইথন পান্ডাসে DateTimeIndex-কে আওয়ার ফ্রিকোয়েন্সি (hourly frequency) অনুযায়ী রাউন্ড করতে DateTimeIndex.round() মেথড ব্যবহার করা হয়। আওয়ার ফ্রিকোয়েন্সির জন্য freq প্যারামিটারে 'H' মান ব্যবহার করা হয়।

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

import pandas as pd

DateTimeIndex তৈরি করুন

৫টি পিরিয়ড, ৩৫ মিনিট ইন্টারভ্যাল, টাইমজোন: Australia/Adelaide

datetimeindex = pd.date_range('2021-09-29 07:00', periods=5, tz='Australia/Adelaide', freq='35T')

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

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

আওয়ার ফ্রিকোয়েন্সি দিয়ে রাউন্ড করুন

print("\nPerforming round operation with hourly frequency...\n", datetimeindex.round(freq='H'))

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

import pandas as pd

# DateTimeIndex তৈরি
datetimeindex = pd.date_range('2021-09-29 07:00', periods=5, tz='Australia/Adelaide', freq='35T')

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

# আওয়ার এক্সট্র্যাক্ট করুন
res = datetimeindex.hour
print("\nThe hour from DateTimeIndex...\n", res)

# আওয়ার ফ্রিকোয়েন্সি দিয়ে রাউন্ড করুন
print("\nPerforming round operation with hourly frequency...\n", datetimeindex.round(freq='H'))

আউটপুট

DateTimeIndex...
DatetimeIndex(['2021-09-29 07:00:00+09:30', '2021-09-29 07:35:00+09:30', '2021-09-29 08:10:00+09:30', '2021-09-29 08:45:00+09:30', '2021-09-29 09:20:00+09:30'], dtype='datetime64[ns, Australia/Adelaide]', freq='35T')
The hour from DateTimeIndex...
Int64Index([7, 7, 8, 8, 9], dtype='int64')
Performing round operation with hourly frequency...
DatetimeIndex(['2021-09-29 07:00:00+09:30', '2021-09-29 08:00:00+09:30', '2021-09-29 08:00:00+09:30', '2021-09-29 09:00:00+09:30', '2021-09-29 09:00:00+09:30'], dtype='datetime64[ns, Australia/Adelaide]', freq=None)

ব্যাখ্যা

  • মূল টাইমস্ট্যাম্প: 07:00, 07:35, 08:10, 08:45, 09:20
  • round(freq='H') দিয়ে নিকটতম ঘণ্টায় রাউন্ড:
    • 07:00 -> 07:00 (একদম বাউন্ডারি)
    • 07:35 -> 08:00 (৩৫ মিনিট > ৩০ মিনিট, আপ রাউন্ড)
    • 08:10 -> 08:00 (১০ মিনিট < ৩০ মিনিট, ডাউন রাউন্ড)
    • 08:45 -> 09:00 (৪৫ মিনিট > ৩০ মিনিট, আপ রাউন্ড)
    • 09:20 -> 09:00 (২০ মিনিট < ৩০ মিনিট, ডাউন রাউন্ড)

রাউন্ডিং লজিক

পান্ডাস "রাউন্ড হাফ টু ইভেন" (banker's rounding) ব্যবহার করে না, বরং সাধারণ arithmetic rounding: হাফওয়ে বা তার উপরে আপ, নিচে ডাউন।

অন্যান্য রাউন্ডিং মেথড

  • datetimeindex.floor('H') — সবসময় নিচের ঘণ্টায় (ফ্লোর)
  • datetimeindex.ceil('H') — সবসময় উপরের ঘণ্টায় (সিলিং)
  • datetimeindex.round('H') — নিকটতম ঘণ্টায় (রাউন্ড)

এই মেথডগুলো টাইম সিরিজ ডেটা রিস্যাম্পলিং বা অ্যালাইনমেন্টের জন্য খুব উপকারী।

  1. পাইথন পান্ডাস - DateTimeIndex কে মিনিট ফ্রিকোয়েন্সি দিয়ে রাউন্ড করুন

  2. পাইথন প্যান্ডাস - Timedelta দৈনিক ফ্রিকোয়েন্সি দিয়ে রাউন্ড করুন

  3. পাইথন প্যান্ডাস - Timedelta সেকেন্ড ফ্রিকোয়েন্সি দিয়ে রাউন্ড করুন

  4. পাইথন প্যান্ডাস - Timedelta ঘণ্টা ফ্রিকোয়েন্সি দিয়ে রাউন্ড করুন