Pandasで2つの日付の経過日数を取得
datefimeオブジェクトの差分からtimedeltaオブジェクトを生成
datefimeオブジェクトの差分からtimedeltaオブジェクトが生成できます。
timedeltaオブジェクトのdays属性を指定することで、経過日数が取得できます。
下記がサンプルコードになります。
$ cat sample.py #!/usr/bin/env python3 # coding: UTF-8 import datetime DATE01 = datetime.datetime(2010, 1, 3) DATE02 = datetime.datetime(2012, 5, 12) DATE_DIFF = DATE02 - DATE01 print(DATE_DIFF.days , "日経過")
下記が実行結果になります。
$ ./sample.py 860 日経過
PandasのDataFrameで日付の差分から経過日数を取得
例えば、下記のin.txtがあったとします。
$ cat in.txt 20120101,0 20120102,1 20120203,2 20120204,3 20120305,-4 20130306,5 20130407,6 20130508,7 20140509,-8 20140510,9
2列目の値が負の場合、1列目の日付からの経過日数を求めます。
下記がサンプルコードになります。
$ cat sample.py
#!/usr/bin/env python3
# coding: UTF-8
import pandas as pd
DF = pd.read_csv('in.txt',
names=('Date', 'Value'),
index_col='Date',
parse_dates=True)
count = 0
for index, row in DF.iterrows():
if count == 0:
index1st = index
count += 1
if row['Value'] < 0:
dateDiff = index - index1st
print("Value=" , row['Value'] , "経過日数" , dateDiff.days)
下記が実行結果になります。
$ ./sample.py Value= -4 経過日数 64 Value= -8 経過日数 859
