パンダ: datetime に時間を加算/減算する方法


次の基本構文を使用して、パンダの日付/時刻に時間を加算または減算できます。

 #add time to datetime
df[' new_datetime '] = df[' my_datetime '] + pd. Timedelta (hours= 5 , minutes= 10 , seconds= 3 )

#subtract time from datetime
df[' new_datetime '] = df[' my_datetime '] - pd. Timedelta (hours= 5 , minutes= 10 , seconds= 3 ) 

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

例: Pandas の日時への時刻の加算/減算

10 の異なる日付と時刻における店舗の売上を示す次のパンダ データフレームがあるとします。

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' time ': pd.date_range (' 2022-01-01 ', periods= 10 ),
                   ' sales ': [14, 22, 25, 29, 31, 10, 12, 8, 22, 25]})

#view DataFrame
print (df)

        time sales
0 2022-01-01 14
1 2022-01-02 22
2 2022-01-03 25
3 2022-01-04 29
4 2022-01-05 31
5 2022-01-06 10
6 2022-01-07 12
7 2022-01-08 8
8 2022-01-09 22
9 2022-01-10 25

pandas Timedelta関数を使用して、「time」列の各日時値に 5 時間、10 分、3 秒を追加できます。

 #create new column that contains time + 5 hours, 10 minutes, 3 seconds
df[' time_plus_some '] = df[' time '] + pd. Timedelta (hours= 5 , minutes= 10 , seconds= 3 )

#view updated DataFrame
print (df)

        time sales time_plus_some
0 2022-01-01 14 2022-01-01 05:10:03
1 2022-01-02 22 2022-01-02 05:10:03
2 2022-01-03 25 2022-01-03 05:10:03
3 2022-01-04 29 2022-01-04 05:10:03
4 2022-01-05 31 2022-01-05 05:10:03
5 2022-01-06 10 2022-01-06 05:10:03
6 2022-01-07 12 2022-01-07 05:10:03
7 2022-01-08 8 2022-01-08 05:10:03
8 2022-01-09 22 2022-01-09 05:10:03
9 2022-01-10 25 2022-01-10 05:10:03

また、「time」列の各日時値から 5 時間、10 分、3 秒を減算する新しい列を同様に簡単に作成できます。

 #create new column that contains time - 5 hours, 10 minutes, 3 seconds
df[' time_minus_some '] = df[' time '] - pd. Timedelta (hours= 5 , minutes= 10 , seconds= 3 )

#view updated DataFrame
print (df)

        time sales time_minus_some
0 2022-01-01 14 2021-12-31 18:49:57
1 2022-01-02 22 2022-01-01 18:49:57
2 2022-01-03 25 2022-01-02 18:49:57
3 2022-01-04 29 2022-01-03 18:49:57
4 2022-01-05 31 2022-01-04 18:49:57
5 2022-01-06 10 2022-01-05 18:49:57
6 2022-01-07 12 2022-01-06 18:49:57
7 2022-01-08 8 2022-01-07 18:49:57
8 2022-01-09 22 2022-01-08 18:49:57
9 2022-01-10 25 2022-01-09 18:49:57

注 #1 : これらの例では、特定の時間、分、秒の数値を使用しましたが、必要に応じてこれらの単位の 1 つだけを使用することもできます。たとえば、 pd.Timedelta(hours=5)を指定すると、単純に日時値に 5 時間を追加できます。

注 #2 : pandas Timedelta関数の完全なドキュメントはここで見つけることができます。

追加リソース

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

Pandas で Timedelta を Int に変換する方法
PandasでDateTimeを文字列に変換する方法
Pandasでタイムスタンプを日付/時刻に変換する方法
Pandasで年、月、日から日付列を作成する方法

コメントを追加する

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