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

PandasのTimestampオブジェクトをPythonネイティブのdatetimeオブジェクトに変換する方法

Pandasで扱う Timestamp オブジェクトを、Python標準ライブラリの datetime オブジェクトに変換したい場面はよくあります。その場合は、to_pydatetime() メソッドを使用します。このメソッドを呼び出すだけで、Pandas独自のTimestamp型がネイティブの datetime.datetime 型へと簡単に変換できます。

必要なライブラリのインポート

まず、必要なライブラリをインポートします。

import pandas as pd

Timestampオブジェクトの作成

次に、PandasでTimestampオブジェクトを作成します。日時を表す文字列を引数として渡すだけで生成できます。

timestamp = pd.Timestamp('2021-09-11T13:12:34.261811')

ネイティブのdatetimeオブジェクトへの変換

Timestampオブジェクトに対して to_pydatetime() を呼び出すことで、Pythonネイティブのdatetimeオブジェクトに変換できます。

timestamp.to_pydatetime()

サンプルコード

以下に、実際の一連の処理をまとめた完全なコード例を示します。

import pandas as pd

# PandasでTimestampオブジェクトを作成
timestamp = pd.Timestamp('2021-09-11T13:12:34.261811')

# Timestampを表示
print("Timestamp...\n", timestamp)

# TimestampをネイティブのPython datetimeオブジェクトに変換
print("\nConvert Timestamp...\n", timestamp.to_pydatetime())

実行結果

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

Timestamp...
 2021-09-11 13:12:34.261811
Convert Timestamp...
 2021-09-11 13:12:34.261811

補足:to_pydatetime()メソッドのポイント

  • 戻り値の型: 変換後のオブジェクトは datetime.datetime 型であり、type() 関数で確認できます。
  • タイムゾーンの扱い: 元のTimestampがタイムゾーン情報(tz-aware)を持つ場合、変換後もその情報は保持されます。tz-naiveの場合はnaiveなdatetimeとして返されます。
  • 活用シーン: 標準のdatetime型しか受け付けない外部APIやデータベースとの連携時に便利です。

このように、to_pydatetime() メソッドを使えば、PandasのTimestampからPython標準のdatetimeへの変換は一行で完了します。日付・時刻データを扱う際には覚えておくと非常に役立つテクニックです。

  1. 【Python入門】タイムスタンプを日時オブジェクトに変換する方法をわかりやすく解説

    Pythonでは、標準ライブラリの datetime モジュールに含まれる fromtimestamp() 関数を使うことで、UNIXタイムスタンプ(エポック秒)から日時オブジェクトへ簡単に変換できます。この関数はタイムスタンプを引数として受け取り、それに対応する datetime オブジェクトを返します。 基本の使い方:fromtimestamp() 以下の例では、UNIXタイムスタンプ「1500000000」を日時オブジェクトに変換し、読みやすい形式の文字列として出力しています。 import datetime timestamp = datetime.datetime.fromtime

  2. 【Python入門】strptimeを使って日付文字列をdateオブジェクトに変換する方法

    Pythonでは、datetimeモジュールのstrptime関数を使うことで、文字列形式の日付データを簡単にdatetimeオブジェクトへ変換できます。この関数には、変換したい日付の文字列と、その日付がどのような書式で記述されているかを示すフォーマット指定子の2つの引数を渡します。基本的な使い方(サンプルコード)以下の例では、「2017年12月29日」という日付が「29122017」という文字列として表現されている場合に、それを日付オブジェクトへ変換しています。import datetime date_str = 29122017 # 日付文字列(2017年12月29日) format