2つの列のデータ型がhh:mm形式であるcsvファイルからいくつかのデータを読み取っています。次に例を示します。
Start End
11:15 15:00
22:30 2:00
上記の例では、2行目のEndは翌日に発生します。データセットが巨大であるため、これら2つの列の時間差を最も効率的な方法で取得しようとしています。これを行うための良いpythonicの方法はありますか?また、日付がなく、次にいくつかの終了が発生するため、差分を計算すると間違った結果が得られます。
>>> import pandas as pd
>>> df = pd.read_csv(file_path)
>>> pd.to_datetime(df['End'])-pd.to_datetime(df['Start'])
0 0 days 03:45:00
1 0 days 03:00:00
2 -1 days +03:30:00
あなたは24時間(または1日、同じ)のテクニック(a+x)%x
を使うことができますtimedelta
+ timedelta(hours=24)
すべての値が正となります% timedelta(hours=24)
上記のものになり24h
の背中を24h
df['duration'] = (pd.to_datetime(df['End']) - pd.to_datetime(df['Start']) + timedelta(hours=24)) \
% timedelta(hours=24)
与える
Start End duration
0 11:15 15:00 0 days 03:45:00
1 22:30 2:00 0 days 03:30:00
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加