Python

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

投稿日:2020年6月29日 更新日:

元データ

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

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

執筆者:


comment

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

関連記事

Python smtplibでメール送信

Contents1 目的2 環境3 コード 目的 pythonからSMTPサーバにメールを送信する。 環境 Windows10Python 3.7.3 (Anaconda 4.7.10) コード # …

VSCodeでJupytreNotebookを使う

Contents1 目的2 環境3 Step1 : pythonプラグインインストール4 Step2 : JupyterNotebookの立ち上げ5 Step : 3 使ってみる6 まとめ 目的 VS …

【Python】pandasでhtmlのtableをスクレイピング

Contents1 概要2 tableを取得するコード 概要 以下でBeautifulSoupを使ってwebページのhtmlからtableをスクレイピングしたときに少しはまったときの対処法について書き …

【Python】階乗と順列と組合せ

Contents1 目的2 階乗の計算方法3 順列の計算4 組合せの計算5 まとめ 目的 統計的なデータ分析アプローチの中には確率的な考え方も多く使われます。今回は確率的な手法を用いる際に必要となる基 …

【Python】BeautifulSoupでtableが最初の数行しか取得できない場合の対処

Contents1 概要2 環境3 発生事象3.0.1 実行結果4 対処法 概要 PythonでWebスクレイピングをするときの定番であるBeautifulsoupですが、tableを取得しようとした …

言語切り替え

カテゴリー