パンダ: 2 つの時間の差を計算する方法


次の構文を使用して、pandas DataFrame の 2 つの時間の差を計算できます。

 #calculate time difference in hours
df[' hours_diff '] = (df. end_time - df. start_time ) / pd. Timedelta (hours= 1 )

#calculate time difference in minutes
df[' min_diff '] = (df. end_time - df. start_time ) / pd. Timedelta (minutes= 1 )

#calculate time difference in seconds
df[' sec_diff '] = (df. end_time - df. start_time ) / pd. Timedelta (seconds= 1 )

この特定の例では、一部の Pandas DataFrame のend_time 列start_time列の時間の差を計算します。

次の例は、この構文を実際に使用する方法を示しています。

例: pandas での 2 つの時間の差の計算

次のパンダ データフレームがあるとします。

 import pandas as pd

#createDataFrame
df=pd. DataFrame ({' start_time ':pd. date_range (start=' 5/25/2020 ', periods= 6 , freq=' 15min '),
                 ' end_time ':pd. date_range (start=' 5/26/2020 ', periods= 6 , freq=' 30min ')})

#view DataFrame
print (df)

           start_time end_time
0 2020-05-25 00:00:00 2020-05-26 00:00:00
1 2020-05-25 00:15:00 2020-05-26 00:30:00
2 2020-05-25 00:30:00 2020-05-26 01:00:00
3 2020-05-25 00:45:00 2020-05-26 01:30:00
4 2020-05-25 01:00:00 2020-05-26 02:00:00
5 2020-05-25 01:15:00 2020-05-26 02:30:00

次の構文を使用して、 start_time 列end_time列の間の時間差を時、分、秒の単位で計算できます。

 #calculate time difference in hours
df[' hours_diff '] = (df. end_time - df. start_time ) / pd. Timedelta (hours= 1 )

#calculate time difference in minutes
df[' min_diff '] = (df. end_time - df. start_time ) / pd. Timedelta (minutes= 1 )

#calculate time difference in seconds
df[' sec_diff '] = (df. end_time - df. start_time ) / pd. Timedelta (seconds= 1 )

#view updated DataFrame
print (df)

           start_time end_time hours_diff min_diff sec_diff
0 2020-05-25 00:00:00 2020-05-26 00:00:00 24.00 1440.0 86400.0
1 2020-05-25 00:15:00 2020-05-26 00:30:00 24.25 1455.0 87300.0
2 2020-05-25 00:30:00 2020-05-26 01:00:00 24.50 1470.0 88200.0
3 2020-05-25 00:45:00 2020-05-26 01:30:00 24.75 1485.0 89100.0
4 2020-05-25 01:00:00 2020-05-26 02:00:00 25.00 1500.0 90000.0
5 2020-05-25 01:15:00 2020-05-26 02:30:00 25.25 1515.0 90900.0

新しい列には、 start_time 列end_time列間の時間差が異なる単位で含まれます。

たとえば、最初の行を考えてみましょう。

  • 開始時刻と終了時刻の差は24 時間です。
  • 開始時刻と終了時刻の差は1440 分です。
  • 開始時刻と終了時刻の差は86,400 秒です。

この例では、 start_time 列end_time列がすでに datetime としてフォーマットされていることに注意してください。

時刻列が現在文字列としてフォーマットされている場合は、時刻の差を計算する前に、 pd.to_datetimeを使用してまず各列を日時フォーマットに変換できます。

 #convert columns to datetime format
df[[' start_time ', ' end_time ']] = df[[' start_time ', ' end_time ]]. apply (pd. to_datetime )

その後、両方の列がパンダが認識できる日時形式になっているため、列間の時間差の計算に進むことができます。

追加リソース

次のチュートリアルでは、パンダで他の一般的な操作を実行する方法を説明します。

Pandas で日付範囲を作成する方法
Pandasで日付から月を抽出する方法
Pandasでタイムスタンプを日付/時刻に変換する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です