【Python】pandas dateframeで日時を日付と時間に分ける

元データ

このようなデータフレームがあり、日付と時刻にばらしたい場合の話。

import pandas as pd
import datetime as dt

df = pd.DataFrame([dt.datetime(2020,6,1,0,0,0),dt.datetime(2020,6,2,10,0,0),dt.datetime(2020,6,3,15,0,0)],columns=['datetimes'])
    datetimes
0	2020-06-01 00:00:00
1	2020-06-02 10:00:00
2	2020-06-03 15:00:00

日付と時刻にばらすコード

無名関数とapplyメソッドでこう書けます。

df['dates'] = df['datetimes'].apply(lambda x : dt.date(x.year,x.month,x.day))
df['times'] = df['datetimes'].apply(lambda x : dt.time(x.hour,x.minute,x.second))
     datetimes	     dates  	times
0	2020-06-01 00:00:00	2020-06-01	00:00:00
1	2020-06-02 10:00:00	2020-06-02	10:00:00
2	2020-06-03 15:00:00	2020-06-03	15:00:00

文字列で取り出したいときは以下です。

df['dates'] = df['datetimes'].apply(lambda x : x.strftime('%Y/%m/%d'))
df['times'] = df['datetimes'].apply(lambda x : x.strftime('%H:%M:%S'))
	datetimes	        dates	        times
0	2020-06-01 00:00:00	2020/06/01	00:00:00
1	2020-06-02 10:00:00	2020/06/02	10:00:00
2	2020-06-03 15:00:00	2020/06/03	15:00:00

以上

Pythonを一から学ぶのにおすすめの本はコチラ

おすすめ

コメントを残す

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