Pandas- ရက်စွဲနှစ်ခုကြား ကွာခြားချက်ကို တွက်ချက်နည်း


Pandas DataFrame တွင် ရက်စွဲနှစ်ခုကြား ခြားနားချက်ကို တွက်ချက်ရန် အောက်ပါ syntax ကို သင် အသုံးပြုနိုင်ပါသည်။

 df[' diff_days '] = (df[' end_date '] - df[' start_date ']) / np. timedelta64 ( 1 ,' D ')

ဤဥပမာသည် end_date နှင့် start_date ကော်လံများရှိ ရက်စွဲများအကြား ခြားနားချက်ကို ရက်များ၏ သတ်မှတ်ချက်များဖြင့် တွက်ချက်ပါသည်။

မတူညီသောယူနစ်များရှိ ရက်စွဲကွာခြားချက်ကို တွက်ချက်ရန် timedelta64() လုပ်ဆောင်ချက်တွင် “ D” ကို အောက်ပါတန်ဖိုးများဖြင့် အစားထိုးနိုင်သည်ကို သတိပြုပါ။

  • W : ရက်သတ္တပတ်များ
  • M : လ
  • Y : နှစ်များ

အောက်ဖော်ပြပါနမူနာများသည် လက်တွေ့တွင် ပန်ဒါ DataFrame တွင် ရက်စွဲကွဲပြားမှုကို တွက်ချက်နည်းကို ပြသထားသည်။

ဥပမာ 1- Datetime ကော်လံများဖြင့် ရက်စွဲနှစ်ခုကြား ခြားနားချက်ကို တွက်ချက်ပါ။

ကျွန်ုပ်တို့တွင် အောက်ပါ ပန်ဒါ DataFrame ရှိသည် ဆိုပါစို့။

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' start_date ': pd. date_range (start=' 1/5/2020 ', periods= 6 , freq=' W '),
                   ' end_date ': pd. date_range (start=' 6/1/2020 ', periods= 6 , freq=' M ')})

#view DataFrame
print (df)

  start_date end_date
0 2020-01-05 2020-06-30
1 2020-01-12 2020-07-31
2 2020-01-19 2020-08-31
3 2020-01-26 2020-09-30
4 2020-02-02 2020-10-31
5 2020-02-09 2020-11-30

#view dtype of each column in DataFrame
df. dtypes

start_date datetime64[ns]
end_date datetime64[ns]
dtype:object

DataFrame ရှိ ကော်လံနှစ်ခုလုံးတွင် datetime64 အမျိုးအစားရှိပြီးသားဖြစ်သောကြောင့်၊ စတင်ခြင်းနှင့် ပြီးဆုံးသည့်ရက်စွဲများကြား ခြားနားချက်ကို တွက်ချက်ရန် အောက်ပါ syntax ကို အသုံးပြုနိုင်ပါသည်။

 import numpy as np

#create new columns that contains date differences
df[' diff_days '] = (df[' end_date '] - df[' start_date ']) / np. timedelta64 ( 1 ,' D ')
df[' diff_weeks '] = (df[' end_date '] - df[' start_date ']) / np. timedelta64 ( 1 ,' W ')
df[' diff_months '] = (df[' end_date '] - df[' start_date ']) / np. timedelta64 ( 1 ,' M ')
df[' diff_years '] = (df[' end_date '] - df[' start_date ']) / np. timedelta64 ( 1 ,' Y ')

#view updated DataFrame
print (df)

  start_date end_date diff_days diff_weeks diff_months diff_years
0 2020-01-05 2020-06-30 177.0 25.285714 5.815314 0.484610
1 2020-01-12 2020-07-31 201.0 28.714286 6.603832 0.550319
2 2020-01-19 2020-08-31 225.0 32.142857 7.392349 0.616029
3 2020-01-26 2020-09-30 248.0 35.428571 8.148011 0.679001
4 2020-02-02 2020-10-31 272.0 38.857143 8.936528 0.744711
5 2020-02-09 2020-11-30 295.0 42.142857 9.692191 0.807683

ကော်လံအသစ်များတွင် ရက်များ၊ ရက်သတ္တပတ်များ၊ လများနှင့် နှစ်များအလိုက် စတင်ရက်စွဲများနှင့် ပြီးဆုံးသည့်ရက်စွဲများအကြား ကွဲပြားမှုများပါရှိသည်။

ဥပမာ 2- စာကြောင်းကော်လံများဖြင့် ရက်စွဲနှစ်ခုကြား ခြားနားချက်ကို တွက်ချက်ပါ။

ကျွန်ုပ်တို့တွင် အောက်ပါ ပန်ဒါ DataFrame ရှိသည် ဆိုပါစို့။

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' start_date ': ['2020-01-05', '2020-01-12', '2020-01-19'],
                   ' end_date ': ['2020-06-30', '2020-07-31', '2020-08-31']})

#view dtype of each column
print ( df.dtypes )

start_date object
end_date object
dtype:object

DataFrame တွင် ကော်လံနှစ်ခုလုံးသည် datetime64 အမျိုးအစားမရှိသောကြောင့်၊ ရက်စွဲများကြားခြားနားချက်ကို တွက်ချက်ရန်ကြိုးစားပါက အမှားတစ်ခုရရှိပါမည်။

 import numpy as np

#attempt to calculate date difference
df[' diff_days '] = (df[' end_date '] - df[' start_date ']) / np. timedelta64 ( 1 ,' D ')

TypeError : unsupported operand type(s) for -: 'str' and 'str'

ရက်စွဲများကြားခြားနားချက်ကို မတွက်ချက်မီ ကော်လံတစ်ခုစီကို datetime ဖော်မတ်သို့ ပြောင်းရန် pd.to_datetime ကို ဦးစွာအသုံးပြုရပါမည်။

 import numpy as np

#convert columns to datetime
df[[' start_date ', ' end_date ']] = df[[' start_date ', ' end_date ']]. apply (pd. to_datetime )

#calculate difference between dates
df[' diff_days '] = (df[' end_date '] - df[' start_date ']) / np. timedelta64 ( 1 ,' D ')

#view updated DataFrame
print (df)

  start_date end_date diff_days
0 2020-01-05 2020-06-30 177.0
1 2020-01-12 2020-07-31 201.0
2 2020-01-19 2020-08-31 225.0

ကျွန်ုပ်တို့သည် ကော်လံတစ်ခုစီကို datetime ဖော်မတ်သို့ ပထမဆုံးပြောင်းလိုက်သောကြောင့်၊ အမှားအယွင်းမရှိဘဲ ရက်စွဲများကြားခြားနားချက်ကို အောင်မြင်စွာ တွက်ချက်နိုင်ခဲ့သည်။

ထပ်လောင်းအရင်းအမြစ်များ

အောက်ဖော်ပြပါ သင်ခန်းစာများသည် ပန်ဒါများတွင် အခြားဘုံလုပ်ဆောင်ချက်များကို မည်သို့လုပ်ဆောင်ရမည်ကို ရှင်းပြသည်-

Pandas တွင် ရက်စွဲအပိုင်းအခြားတစ်ခု ဖန်တီးနည်း
Pandas တွင် ရက်စွဲမှ လကို မည်သို့ထုတ်ယူမည်နည်း။
Pandas တွင် အချိန်တံဆိပ်ကို ရက်စွဲ/အချိန်သို့ မည်သို့ပြောင်းလဲမည်နည်း။

မှတ်ချက်တစ်ခုထည့်ပါ။

သင့် email လိပ်စာကို ဖော်ပြမည် မဟုတ်ပါ။ လိုအပ်သော ကွက်လပ်များကို * ဖြင့်မှတ်သားထားသည်