LoginSignup
1
5

More than 3 years have passed since last update.

【pandas】dtを使った日付データの処理の基礎

Last updated at Posted at 2020-04-20

PythonのPandasライブラリのdtアクセサを使った日付データの処理について

ケース

日付データにto_datetime関数などでオブジェクトから変換したあとに、
任意の日付の型に変えるor特定の部分の日付データを抜き取りとる

データ

まず時間のデータを作ります

import pandas as pd
date_data = pd.DataFrame({'date':
                         ['2020-04-01 01:01:01',
                         '2021-04-02 02:02:02',
                         '2022-04-03 03:03:03',
                         '2023-04-04 04:04:04',
                         '2024-05-05 05:05:05']})
date_data
date
0 2020-04-01 01:01:01
1 2021-04-02 02:02:02
2 2022-04-03 03:03:03
3 2023-04-04 04:04:04
4 2024-05-05 05:05:05

データのタイプを見ましょう

date_data.dtypes
date    object
dtype: object

現在date_data['date']のtypeはobjectです

これをまず日付として扱えるデータの型に変えましょう

date_data['date'] = pd.to_datetime(date_data['date'])
date_data['date']
0   2020-04-01 01:01:01
1   2021-04-02 02:02:02
2   2022-04-03 03:03:03
3   2023-04-04 04:04:04
4   2024-05-05 05:05:05
Name: date, dtype: datetime64[ns]

日付データ処理

年・月・日・秒の部分だけ取りたい

dtアクセサについては以下の通り

Series.dt

pandas.Series.dt

Series.dt()[source]

Accessor object for datetimelike properties of the Series values.

date_data['date'].dt.year
0    2020
1    2021
2    2022
3    2023
4    2024
Name: date, dtype: int64
date_data['date'].dt.month
0    4
1    4
2    4
3    4
4    5
Name: date, dtype: int64
date_data['date'].dt.day
0    1
1    2
2    3
3    4
4    5
Name: date, dtype: int64
date_data['date'].dt.second
0    1
1    2
2    3
3    4
4    5
Name: date, dtype: int64

年/月 (ex:17/01)など特定の型で欲しい場合

strftimeという関数がありました。"strf"は"str format"の略みたいです

date_data['date'].dt.strftime("%y/%m")
0    20/04
1    21/04
2    22/04
3    23/04
4    24/05
Name: date, dtype: object

ex:2002/04/01
%y→%Y にすれば4桁になる 

date_data['date'].dt.strftime("%Y/%M/%d")
0    2020/01/01
1    2021/02/02
2    2022/03/03
3    2023/04/04
4    2024/05/05
Name: date, dtype: object

一旦、以上です。

1
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
5