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

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」(分)など、他の頻度文字列を指定することでも同様に変換できます。


  1. Python Pandas – Timedeltaオブジェクトから秒の値を取得する方法

    Timedeltaオブジェクトから秒の値を取得するには、timedelta.seconds プロパティを使用します。この記事では、実際のコード例とともに、その使い方を詳しく解説します。必要なライブラリのインポートまず、pandasライブラリをインポートします。import pandas as pdTimedeltaオブジェクトとはTimeDeltasは、Pythonの標準datetimeライブラリにおける時間差(timedelta)を表すデータ型です。Pandasでは pd.Timedelta() を使って簡単に作成できます。ここでは、「10秒・15ミリ秒・33ナノ秒」のTimedeltaオブ

  2. 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) 作成したタイム