Loading [MathJax]/extensions/tex2jax.js

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

元データ

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

01
02
03
04
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'])
01
02
03
04
    datetimes
0   2020-06-01 00:00:00
1   2020-06-02 10:00:00
2   2020-06-03 15:00:00

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

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

01
02
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))
01
02
03
04
     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

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

01
02
df['dates'] = df['datetimes'].apply(lambda x : x.strftime('%Y/%m/%d'))
df['times'] = df['datetimes'].apply(lambda x : x.strftime('%H:%M:%S'))
01
02
03
04
    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を一から学ぶのにおすすめの本はコチラ

おすすめ

コメントを残す

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