日の出と日の入の時刻から経過時間を求める方法

日    出    入り

1    06:51    16:46

2    06:50    16:47

3    06:49    16:48

 

上記のようにdataframeに日の出と日の入の時刻が格納されていて、経過時間を計算するのに、試行錯誤を繰り返して、やっとうまくいったので、備忘録として投稿します。

 

import pandas as pd

df['経過時間'] = df['入り'] - df['出']

df['経過時間''] = df['経過時間''].map(lambda x: str(datetime.timedelta(seconds=x.total_seconds())))
df['経過時間''] = pd.to_datetime(df['経過時間'']).dt.strftime('%H:%M')

 

時刻を計算するとデータ形式がtimedeltaになるので、一度経過時間を総秒数に変換し、再度pd.to_datetimeでデータ形式を時刻形式に変換することで下記のように表示することができました。

 

日    出    入り 経過時間

1    06:51    16:46 09:55

2    06:50    16:47 09:57

3    06:49    16:48 09:59

 

dt.strftime('%H:%M')←ここを変えれば自由に表示を変えることができます。