🕌

【Python】日付操作の基本

2023/11/13に公開

この記事では、Pythonでの日付操作の基本をご紹介します。
具体的には、以下の日付型⇔文字列型・数値型の変換について、Pythonコードをご紹介します。

  • 日付型(date型)データを文字列データ(YYYYMMDD形式)に変換
  • 文字列データ(YYYYMMDD形式)を日付型データに変換
  • 数値型データ(YYYYMMDD形式)を日付型データに変換
  • エポック秒(UNIX時間)を日付型データに変換

日付型⇔文字列型・数値型の変換

import pandas as pd

df = pd.DataFrame({
    'date型': [pd.Timestamp('2023-09-15'), pd.Timestamp('2023-09-16')],
    'str型': ['2023-09-17', '2023-09-18'],
    'int型': [20230919, 20230920],
    'epoch_seconds': [1678886400, 1678972800]  
})

1. 日付型(date型)データを文字列データ(YYYYMMDD形式)に変換

  • date型を、pd.to_datetimeを使って、datetime型に変換します。
  • 次にdatetime型をstrftimeを使って、文字列データに変換します。
  • なお、strftimeはdatetimeオブジェクトの関数なので、dtアクセサを使います。
df["date_str"] = pd.to_datetime(df["date型"]).dt.strftime("%Y%m%d")
df[["date_str"]]

2. 文字列データ(YYYYMMDD形式)を日付型データに変換

df["str_date"] = pd.to_datetime(df["str型"])
df[["str_date"]]

3. 数値型データ(YYYYMMDD形式)を日付型データに変換

df["int_date"] = pd.to_datetime(df["int型"].astype(str))
df[["int_date"]]

4. エポック秒(UNIX時間)を日付型データに変換

df["epoch_seconds_date"] = pd.to_datetime(df['epoch_seconds'], unit="s")
df[["epoch_seconds_date"]]

5. 日付データから年だけを取り出す

  • datetime型に変換して、年の部分だけを取り出します。
  • 1.で作成した文字列データ(date_str)をdatetime型にします。
  • dtアクセサを使って、yearを取得します。

5. 日付データから月だけを取り出す

  • datetime型に変換して、月の部分だけを取り出します。
  • 1.で作成した文字列データ(date_str)をdatetime型にします。
  • dtアクセサを使って、monthを取得します。

Discussion