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

পাইথন প্যান্ডাস দিয়ে ডেটাটাইম (datetime) কলাম থেকে ডেট ও টাইম আলাদা করা


ধরুন, আপনার ডেটাফ্রেমে একটি datetime কলাম আছে এবং ডেট ও টাইম আলাদা করার ফলাফল নিচের মতো:

            datetime        date       time
0 2020-01-01 07:00:00 2020-01-06 07:00:00
1 2020-01-02 07:00:00 2020-01-06 07:00:00
2 2020-01-03 07:00:00 2020-01-06 07:00:00
3 2020-01-04 07:00:00 2020-01-06 07:00:00
4 2020-01-05 07:00:00 2020-01-06 07:00:00
5 2020-01-06 07:00:00 2020-01-06 07:00:00

এটি সমাধানের জন্য নিচের পদ্ধতিগুলো অনুসরণ করব:

সমাধান ১

  • pd.date_range() ব্যবহার করে 'datetime' কলাম সহ একটি ডেটাফ্রেম ডিফাইন করুন। নিচে ডিফাইন করা হলো:

pd.DataFrame({'datetime': pd.date_range('2020-01-01 07:00', periods=6)})
  • ফর লুপ d ভেরিয়েবল দিয়ে df['datetime'] কলাম একে একে অ্যাক্সেস করুন।

  • ফর লুপ থেকে ডেট ও টাইম কনভার্ট করুন এবং df['date'] ও df['time']-এ সংরক্ষণ করুন। নিচে ডিফাইন করা হলো:

for d in df['datetime']:
    df['date'] = d.date()
    df['time'] = d.time()

উদাহরণ

নিচের কোডটি দেখুন আরও ভালো বুঝতে:

import pandas as pd
df = pd.DataFrame({'datetime': pd.date_range('2020-01-01 07:00', periods=6)})
print("DataFrame is:\n", df)
for d in df['datetime']:
    df['date'] = d.date()
    df['time'] = d.time()
print(df)

আউটপুট

DataFrame is:
             datetime
0 2020-01-01 07:10:00
1 2020-01-02 07:10:00
2 2020-01-03 07:10:00
3 2020-01-04 07:10:00
4 2020-01-05 07:10:00
5 2020-01-06 07:10:00
Date-time-hour-minutes:
            datetime        date       time
0 2020-01-01 07:10:00 2020-01-06 07:10:00
1 2020-01-02 07:10:00 2020-01-06 07:10:00
2 2020-01-03 07:10:00 2020-01-06 07:10:00
3 2020-01-04 07:10:00 2020-01-06 07:10:00
4 2020-01-05 07:10:00 2020-01-06 07:10:00
5 2020-01-06 07:10:00 2020-01-06 07:10:00

সমাধান ২

  • একটি ডেটাফ্রেম ডিফাইন করুন।

  • df['datetime']-এ pd.to_datetime() ফাংশন প্রয়োগ করুন এবং dt.date দিয়ে ডেট সিলেক্ট করে df['date']-এ সেভ করুন।

  • df['datetime']-এ pd.to_datetime() ফাংশন প্রয়োগ করুন এবং dt.time দিয়ে টাইম সিলেক্ট করে df['time']-এ সেভ করুন।

উদাহরণ

নিচের কোডটি দেখুন আরও ভালো বুঝতে:

import pandas as pd
df = pd.DataFrame({'datetime': pd.date_range('2020-01-01 07:10', periods=6)})
print("DataFrame is:\n", df)
df['date'] = pd.to_datetime(df['datetime']).dt.date
df['time'] = pd.to_datetime(df['datetime']).dt.time
print("Date-time-hour-minutes:\n", df)

আউটপুট

DataFrame is:
             datetime
0 2020-01-01 07:10:00
1 2020-01-02 07:10:00
2 2020-01-03 07:10:00
3 2020-01-04 07:10:00
4 2020-01-05 07:10:00
5 2020-01-06 07:10:00
Date-time-hour-minutes:
            datetime        date       time
0 2020-01-01 07:10:00 2020-01-06 07:10:00
1 2020-01-02 07:10:00 2020-01-06 07:10:00
2 2020-01-03 07:10:00 2020-01-06 07:10:00
3 2020-01-04 07:10:00 2020-01-06 07:10:00
4 2020-01-05 07:10:00 2020-01-06 07:10:00
5 2020-01-06 07:10:00 2020-01-06 07:10:00
  1. প্রথম কলাম শিফট (shift) করে ইউজার থেকে মান গ্রহণ করা, যদি ইনপুট ৩ এবং ৫ উভয় দিয়ে বিভাজ্য হয় তবে মিসিং ভ্যালু পূরণ করার পাইথন প্রোগ্রাম লিখুন

  2. পাইথনে ডেট সিরিজ থেকে বছরের দিন (Day of Year) বের করুন

  3. পাইথন বেসিক ডেট এবং টাইম টাইপ

  4. পাইথনে তারিখ ও সময়ের গাণিতিক অপারেশন কীভাবে করবেন?