🕌
【Python】日付操作の基本
この記事では、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