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

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

পাইথন পান্ডাসে 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() টাইমজোন সংরক্ষণ করে, শুধু লোকাল টাইম মিডনাইট করে।

  1. Python-এ Pandas DataFrame-এ এক ডেটা টাইপ থেকে অন্য ডেটা টাইপে কনভার্ট করার পদ্ধতি

  2. Python Pandas-এ नेস্টেড ডিকশনারি (Nested Dictionary) থেকে MultiIndex DataFrame বানানোর পদ্ধতি

  3. স্প্রেডশীট (Spreadsheet) পাইথন ডিকশনারিতে কনভার্ট করা

  4. পাইথনে পান্ডাস অফসেটকে পাইথন ডেটে কনভার্ট করবেন?