English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Pandas Timedelta

Pandas Timedeltaの操作例

時間増分は時間の差異で表され、差異の単位で示されます。例えば、日、時間、分、秒です。それらは正のものや負のものがあります。

文字列リテラルを渡すことでtimedeltaオブジェクトを作成できます。

文字列

以下のように、さまざまなパラメータでTimedeltaオブジェクトを作成できます。-

import pandas as pd
print(pd.Timedelta('2 days 2 hours 15 minutes 30 seconds'))

以下は実行結果です:

 2 days 02:15:30

整数

単位を整数値で渡すことで、パラメータがTimedeltaオブジェクトを作成します。

import pandas as pd
print(pd.Timedelta(6,unit='h'))

以下は実行結果です:

 0 days 06:00:00

データオフセット

データオフセット(例えば-週、日、時間、分、秒、ミリ秒、マイクロ秒、ナノ秒()も構築時に使用できます。

import pandas as pd
print(pd.Timedelta(days=2))

以下は実行結果です:

2 days 00:00:00

to_timedelta()

pd.to_timedeltaを使用して、スカラー、配列、リスト、またはシーケンスを認証されたtimedelta形式/値をTimedelta型に変換します。入力がSeriesの場合はSeriesを構築し、スカラーの場合はスカラーを構築し、それ以外の場合はTimedeltaIndexを输出します。

import pandas as pd
print(pd.Timedelta(days=2))

以下は実行結果です:

2 days 00:00:00

具体的な操作

Seriesに対して / DataFrameに対して操作を行い、datetime64 [ns] SeriesまたはTimestampsを減法演算でtimedeltaを構築する64 [ns] Series 。
今、Timedeltaとdatetimeオブジェクトを持つDataFrameを作成し、それに対していくつかの算術演算を行います-

 import pandas as pd
 s = pd.Series(pd.date_range('2012-1-1', periods=3, freq='D'))
 td = pd.Series([ pd.Timedelta(days=i) for i in range(3) ])
 df = pd.DataFrame(dict(A = s, B = td))
 print(df)

以下は実行結果です:

          A      B
0  2012-01-01 0 days
1  2012-01-02 1 days
2  2012-01-03 2 days

加法演算

 import pandas as pd
 s = pd.Series(pd.date_range('2012-1-1', periods=3, freq='D'))
 td = pd.Series([ pd.Timedelta(days=i) for i in range(3) ])
 df = pd.DataFrame(dict(A = s, B = td))
 df['C'] = df['A']+df['B']
 print(df)

以下は実行結果です:

         A      B          C
0 2012-01-01 0 days 2012-01-01
1 2012-01-02 1 days 2012-01-03
2 2012-01-03 2 days 2012-01-05

減法演算

 import pandas as pd
 s = pd.Series(pd.date_range('2012-1-1', periods=3, freq='D'))
 td = pd.Series([ pd.Timedelta(days=i) for i in range(3) ])
 df = pd.DataFrame(dict(A = s, B = td))
 df['C'] = df['A']+df['B']
 df['D'] = df['C']+df['B']
 print(df)

以下は実行結果です:

         A      B          C          D
0 2012-01-01 0 days 2012-01-01 2012-01-01
1 2012-01-02 1 days 2012-01-03 2012-01-04
2 2012-01-03 2 days 2012-01-05 2012-01-07