Python Pandas入門:Periodオブジェクトをタイムスタンプに変換するto_timestamp()メソッドの使い方
PandasのPeriodオブジェクトは、特定の時点ではなく「期間」を表現するためのデータ型です。このPeriodオブジェクトをタイムスタンプ(Timestamp)形式に変換したい場合は、period.to_timestamp()メソッドを使用します。
本記事では、to_timestamp()メソッドの基本的な使い方から、freqパラメータによる頻度指定まで、実際のコード例とともにわかりやすく解説します。
必要なライブラリのインポート
まず、Pandasをインポートします。
import pandas as pd
Periodオブジェクトの作成
pandas.Periodは、ある一定の時間幅(期間)を表すオブジェクトです。年・月・日・時・分・秒などの情報を指定して作成できます。
以下のコードでは、「2021年9月18日 17時20分45秒」という時点を含むPeriodオブジェクトを作成しています。freqパラメータには秒単位を意味する「S」を指定しています。
period = pd.Period(freq="S", year=2021, month=9, day=18, hour=17, minute=20, second=45)
Periodオブジェクトの表示
作成したPeriodオブジェクトをprint関数で表示してみましょう。
print("Period...\n", period)
Periodオブジェクトをタイムスタンプへ変換
to_timestamp()メソッドを呼び出すことで、Periodオブジェクトのタイムスタンプ表現を取得できます。freqパラメータに「T」(分単位)を指定すると、変換後のタイムスタンプの精度が分単位になります。
print("\nPeriod to Timestamp...\n", period.to_timestamp(freq='T'))
完全なサンプルコード
以下が、ここまでの手順をまとめた実行用コードです。
import pandas as pd
# pandas.Periodは期間を表すオブジェクト
# Periodオブジェクトを作成
period = pd.Period(freq="S", year=2021, month=9, day=18, hour=17, minute=20, second=45)
# Periodオブジェクトを表示
print("Period...\n", period)
# Periodオブジェクトのタイムスタンプ表現を返す
# freqパラメータで頻度を指定
print("\nPeriod to Timestamp...\n", period.to_timestamp(freq='T'))
実行結果
上記のコードを実行すると、以下のような出力が得られます。
Period... 2021-09-18 17:20:45 Period to Timestamp... 2021-09-18 17:20:00
解説:なぜ秒が「00」になるのか?
元のPeriodオブジェクトは「17:20:45」という秒単位の情報を持っていましたが、to_timestamp(freq='T')で分単位の頻度を指定して変換したため、結果は「17:20:00」となり、秒の部分が切り捨てられています。
つまり、freqパラメータの指定によって、変換後のタイムスタンプの粒度(精度)が決まるという点が重要です。秒単位のまま変換したい場合は、freq='S'を指定してください。
-
Python Pandas - Timedeltaオブジェクトからマイクロ秒を取得する方法
Timedeltaオブジェクトからマイクロ秒を取得するPythonのPandasライブラリで、Timedeltaオブジェクトからマイクロ秒の値を取得するには、timedelta.microseconds プロパティを使用します。このプロパティは、Timedeltaオブジェクトに含まれるマイクロ秒部分(0〜999999の範囲)を整数値として返します。まず、必要なライブラリをインポートしましょう。import pandas as pdTimedeltaオブジェクトとはTimeDeltasは、Pythonの標準datetimeライブラリにおける時間差(timedelta)を表すデータ型です。Pand
-
Python Pandas - Timedeltaオブジェクトの最大値を取得する方法
Timedeltaオブジェクトの最大値を取得するには、timedelta.maxプロパティを使用します。まず、必要なライブラリをインポートしましょう。import pandas as pd次に、Timedeltaオブジェクトを作成します。timedelta = pd.Timedelta(5 days 1 min 45 s 40 ns)そして、最大値を取得します。timedelta.max実行例以下がサンプルコードです。 import pandas as pd # TimeDeltasはPython標準のdatetimeライブラリとは異なる表現を使用します # Timedeltaオブジェクトを