スポンサーリンク
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
スポンサーリンク