Python Pandas – 指定したPeriodオブジェクトの頻度を秒から時間単位に変更する方法
指定されたPeriodオブジェクトの頻度を「秒」から「時間(Hourly)」に変更するには、period.asfreq()メソッドを使用し、パラメータに「H」を設定します。
必要なライブラリのインポート
まず、必要なライブラリをインポートします。
import pandas as pd
Periodオブジェクトの作成
pandas.Periodは、ある時点の期間を表すオブジェクトです。ここでは、freqパラメータを使って頻度を秒('S')に設定したPeriodオブジェクトを作成します。
period = pd.Period(freq="S", year = 2021, month = 4, day = 16, hour = 2, minute = 35, second = 15)
作成した、秒単位の頻度を持つPeriodオブジェクトを表示してみましょう。
print("Period...\n", period)頻度を秒から時間単位へ変換する
asfreq()メソッドに「H」を指定することで、Periodオブジェクトの頻度を秒から時間単位へ変換できます。変換後は、元の時刻がその時間の先頭(00分00秒)に丸められます。
res = period.asfreq('H')
サンプルコード
以下がコード全体です。
import pandas as pd
# pandas.Period は期間の時刻を表します
# freq パラメータで頻度を秒('S')に設定して Period オブジェクトを作成
period = pd.Period(freq="S", year = 2021, month = 4, day = 16, hour = 2, minute = 35, second = 15)
# 秒単位の頻度を持つ Period オブジェクトを表示
print("Period...\n", period)
# asfreq() に "H" を指定して、秒から時間単位の頻度へ変換
res = period.asfreq('H')
# 変換後の結果を表示
print("\nFinal result after converting frequency ...\n", res)出力結果
上記のコードを実行すると、次のような結果が出力されます。
Period... 2021-04-16 02:35:15 Final result after converting frequency ... 2021-04-16 02:00
補足
asfreq()メソッドでは、変換後の期間を時間の始まりに合わせるか(how='start')、終わりに合わせるか(how='end')を指定することも可能です。デフォルトは'end'ですが、本例のように時間単位への変換では、どちらを指定しても同じ結果になります。また、「D」(日)や「T」(分)など、他の頻度文字列を指定することでも同様に変換できます。
-
Python Pandas – Timedeltaオブジェクトから秒の値を取得する方法
Timedeltaオブジェクトから秒の値を取得するには、timedelta.seconds プロパティを使用します。この記事では、実際のコード例とともに、その使い方を詳しく解説します。必要なライブラリのインポートまず、pandasライブラリをインポートします。import pandas as pdTimedeltaオブジェクトとはTimeDeltasは、Pythonの標準datetimeライブラリにおける時間差(timedelta)を表すデータ型です。Pandasでは pd.Timedelta() を使って簡単に作成できます。ここでは、「10秒・15ミリ秒・33ナノ秒」のTimedeltaオブ
-
Python Pandas – 指定したタイムスタンプを1時間ごとの頻度で期間(Period)に変換する方法
Pandasでタイムスタンプ(Timestamp)を期間(Period)に変換するには、timestamp.to_period()メソッドを使用します。このメソッドのfreqパラメータで頻度を指定することができ、1時間ごとの頻度に変換したい場合は「H」を設定します。 必要なライブラリのインポート まず、必要なライブラリをインポートします。 import pandas as pd タイムスタンプオブジェクトの作成 次に、Pandasでタイムスタンプオブジェクトを作成します。 timestamp = pd.Timestamp(2021, 9, 18, 11, 50, 20, 33) 作成したタイム