Pandasの日付と時刻


日付と時刻データの読込み

ファイル読込み時または読込み後に、文字列を日付・時刻に変換することができます。

ファイル読込み時

df = pd.read_csv('test.csv', parse_dates=['Start Date', 'End Date'])

ファイル読込み後

df['Start Date'] = pd.to_datetime(df['Start Date'], format='%Y-%m-%d %H:%M:%S')

日付と時刻データのサマライズ

日付と時刻でグループ化し、サマライズを行うにはpandasのresampleメソッドを使用します。

月でグルーピング

df.resample('M', on='Start Date')['Summarize Target'].mean()

出力:

Start Date
2020-10-31 1886.453704
2020-11-30 854.174757
2020-12-31 635.101266
Freq: M, Name: Summarize Target, dtype: float64

日でグルーピングとプロット

df.resample('D', on='Start Date')['Summarize Target'].mean().plot

タイムゾーン

タイムゾーンを設定するには、tz_localizeを使用します。

print(df['Start Date'].iloc[0])

df['Start Date'] = df['Start Date'].dt.tz_localize('America/New_York', ambiguous='NaT')

print(df['Start Date'].iloc[0])

出力:

2020-10-01 15:23:25
2020-10-01 15:23:25-04:00

設定済みのタイムゾーンを切り替えるには、tz_convertを使用します。

print(df['Start Date'].iloc[0])

df['Start Date'] = df['Start Date'].dt.tz_convert('Europe/London')

print(df['Start Date'].iloc[0])

出力:

2020-10-01 15:23:25-04:00
2020-10-01 20:23:25+01:00