Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python Pandas – 文字列データをdatetime型(日付時刻型)に変換する方法


文字列データをdatetime型に変換する

Pandasで文字列として保存された日付データを、実際の日付型(datetime64)に変換するには、to_datetime()メソッドを使用します。あらかじめ日付型に変換しておくことで、日付によるフィルタリングや並べ替え、期間の計算などが簡単に行えるようになります。

まず、「商品カテゴリ」「商品名」「購入日」の3つの列を持つDataFrameを作成します。このとき「購入日」は文字列として格納されています。

import pandas as pd

# DataFrameを作成
dataFrame = pd.DataFrame({
   'Product Category': ['Computer', 'Mobile Phone', 'Electronics', 'Stationery'],
   'Product Name': ['Keyboard', 'Charger', 'SmartTV', 'Chairs'],
   'Date_of_Purchase': ['10/07/2021', '20/04/2021', '25/06/2021', '15/02/2021'],
})

print("\nDataFrame...\n", dataFrame)

to_datetime()で日付に変換する

次に、to_datetime()を使って「Date_of_Purchase」列の文字列を日付型に変換します。ここでは日付が「日/月/年」の形式で記述されているため、dayfirst=Trueを指定して正しく解釈させています。

# 日付文字列をdatetime型に変換
dataFrame['Date_of_Purchase'] = pd.to_datetime(dataFrame['Date_of_Purchase'], dayfirst=True)

print("\n変換後のDataFrame...\n", dataFrame)

完全なコード例

import pandas as pd

# DataFrameを作成
dataFrame = pd.DataFrame({
   'Product Category': ['Computer', 'Mobile Phone', 'Electronics', 'Stationery'],
   'Product Name': ['Keyboard', 'Charger', 'SmartTV', 'Chairs'],
   'Date_of_Purchase': ['10/07/2021', '20/04/2021', '25/06/2021', '15/02/2021'],
})

print("\nDataFrame...\n", dataFrame)

# 日付文字列をdatetime型に変換
dataFrame['Date_of_Purchase'] = pd.to_datetime(dataFrame['Date_of_Purchase'], dayfirst=True)

print("\n変換後のDataFrame(文字列→日付)...\n", dataFrame)

実行結果

上記のコードを実行すると、次のような出力が得られます。

DataFrame...
    Date_of_Purchase Product Category Product Name
0         10/07/2021         Computer     Keyboard
1         20/04/2021     Mobile Phone      Charger
2         25/06/2021      Electronics      SmartTV
3         15/02/2021       Stationery       Chairs

変換後のDataFrame(文字列→日付)...
    Date_of_Purchase Product Category Product Name
0        2021-07-10         Computer     Keyboard
1        2021-04-20     Mobile Phone      Charger
2        2021-06-25      Electronics      SmartTV
3        2021-02-15       Stationery       Chairs

出力を見ると、「Date_of_Purchase」列のdtypeがdatetime64[ns]に変化していることが確認できます。これにより、日付を基準としたソートや範囲指定の抽出が可能になります。

補足:覚えておくと便利なオプション

  • format引数: 日付の形式が明確な場合は、format='%d/%m/%Y'のように指定すると、高速かつ確実に解析できます。
  • errors='coerce': 変換できない不正な値が含まれる場合に、エラーを発生させずNaT(欠損値)へ置き換えます。
  • dtアクセサ: datetime型への変換後は、.dt.year.dt.monthなどを使って、年・月・日の情報を簡単に取り出せます。
  1. PythonでDateTime文字列をミリ秒単位の整数に変換する方法を徹底解説

    Pythonでは、timeモジュールを使うことで、現在時刻をミリ秒単位の整数として簡単に取得できます。基本的な考え方は、まず time.time() 関数で秒単位の時刻(浮動小数点数)を取得し、それに1000を掛けて四捨五入することでミリ秒に変換するというものです。現在時刻をミリ秒で取得する方法以下のサンプルコードでは、現在のUNIXタイムスタンプをミリ秒単位の整数として取得しています。import time milliseconds = int(round(time.time() * 1000)) print(milliseconds)実行結果このコードを実行すると、次のような出力が得られま

  2. Pythonでデータ型を文字列に変換する方法|str()関数と__str__()メソッドの使い方

    Pythonでは、str()関数を使うことで、あらゆる組み込みデータ型(int、float、complex、list、tuple、dictなど)を簡単に文字列表現へ変換できます。また、ユーザー定義クラスの場合は__str__()メソッドを定義しておくことで、オブジェクトをわかりやすい文字列として出力できるようになります。組み込みデータ型を文字列に変換するstr()関数の引数に数値やリストなどのオブジェクトを渡すと、その文字列表現が文字列(str型)として返されます。>>> str(10) 10 >>> str(11.11) 11.11 >>>