পাইথন পান্ডাসে DateTimeIndex-এর টাইম কম্পোনেন্ট (ঘণ্টা, মিনিট, সেকেন্ড) কে মিডনাইট (০০:০০:০০) এ রূপান্তর করতে DateTimeIndex.normalize() মেথড ব্যবহার করা হয়।
প্রয়োজনীয় লাইব্রেরি ইম্পোর্ট করুন
import pandas as pd
DateTimeIndex তৈরি করুন
৭টি পিরিয়ড, ১০ ঘণ্টা ইন্টারভ্যাল, টাইমজোন: Australia/Adelaide
datetimeindex = pd.date_range('2021-10-30 02:30:50', periods=7, tz='Australia/Adelaide', freq='10H')
DateTimeIndex প্রদর্শন করুন
print("DateTimeIndex...\n", datetimeindex)
টাইম কম্পোনেন্ট মিডনাইটে রূপান্তর করুন
print("\nNormalize (converted the time component to midnight)...\n", datetimeindex.normalize())
সম্পূর্ণ উদাহরণ
import pandas as pd
# DateTimeIndex তৈরি
datetimeindex = pd.date_range('2021-10-30 02:30:50', periods=7, tz='Australia/Adelaide', freq='10H')
# DateTimeIndex প্রদর্শন
print("DateTimeIndex...\n", datetimeindex)
# ফ্রিকোয়েন্সি দেখুন
print("\nDateTimeIndex frequency...\n", datetimeindex.freq)
# টাইম কম্পোনেন্ট মিডনাইটে রূপান্তর করুন
print("\nNormalize (converted the time component to midnight)...\n", datetimeindex.normalize())
আউটপুট
DateTimeIndex...
DatetimeIndex(['2021-10-30 02:30:50+10:30', '2021-10-30 12:30:50+10:30', '2021-10-30 22:30:50+10:30', '2021-10-31 08:30:50+10:30', '2021-10-31 18:30:50+10:30', '2021-11-01 04:30:50+10:30', '2021-11-01 14:30:50+10:30'], dtype='datetime64[ns, Australia/Adelaide]', freq='10H')
DateTimeIndex frequency...
<10 * Hours>
Normalize (converted the time component to midnight)...
DatetimeIndex(['2021-10-30 00:00:00+10:30', '2021-10-30 00:00:00+10:30', '2021-10-30 00:00:00+10:30', '2021-10-31 00:00:00+10:30', '2021-10-31 00:00:00+10:30', '2021-11-01 00:00:00+10:30', '2021-11-01 00:00:00+10:30'], dtype='datetime64[ns, Australia/Adelaide]', freq=None)
ব্যাখ্যা
normalize()মেথডটি প্রতিটি টাইমস্ট্যাম্পের টাইম পার্টকে00:00:00(মিডনাইট) সেট করে দেয়, ডেট পার্ট অপরিবর্তিত রাখে।- মূল ডেটাতে একই দিনে (২০২১-১০-৩০) তিনটি টাইমস্ট্যাম্প ছিল: ০২:৩০, ১২:৩০, ২২:৩০ — নর্মালাইজের পর তিনটিই ০০:০০:০০ হয়ে গেলো।
- ফলাফলের
freq=Noneকারণ একই টাইমস্ট্যাম্প একাধিকবার থাকায় রেগুলার ফ্রিকোয়েন্সি নেই।
ব্যবহার ক্ষেত্র
- ডেট-ওনلی (date-only) অ্যানালাইসিস: টাইম игনোর করে দিন অনুযায়ী গ্রুপিং/এগ্রিগেশন
- টাইম সিরিজ রিস্যাম্পলিং:
resample('D')-এর আগে নর্মালাইজ করলে দিনের বাউন্ডারি ঠিক থাকে - জয়েন/মার্জ: দুটি ডেটাসেটে ডেটে জয়েন করার সময় টাইম পার্ট সমস্যা এড়াতে
সমতুল্য অপারেশন
# normalize() সমতুল্য:
datetimeindex.floor('D')
# অথবা
datetimeindex.dt.normalize() # Series-এ
সতর্কতা: টাইমজোন-অয়েয়ার DateTimeIndex-এ normalize() টাইমজোন সংরক্ষণ করে, শুধু লোকাল টাইম মিডনাইট করে।