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

Python Pandas:Periodオブジェクトの頻度を秒から分単位へ変換する方法

pandasで作成したPeriodオブジェクトの頻度を「秒」から「分」に変更するには、period.asfreq()メソッドを使用し、引数に'T'を指定します。

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

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

import pandas as pd

Periodオブジェクトの作成

pandas.Periodは一定の期間を表すオブジェクトです。ここでは、freqパラメータに'S'(秒)を指定して、頻度が秒単位のPeriodオブジェクトを作成します。

period = pd.Period(freq="S", year = 2021, month = 9, day = 11, hour = 8, minute = 20, second = 45)

作成したPeriodオブジェクトを表示してみましょう。

print("Period...\n", period)

頻度を秒から分へ変換する

asfreq()メソッドの引数に"T"を指定することで、Periodオブジェクトの頻度を秒から分へ変換できます。

res = period.asfreq('T')

完全なサンプルコード

以下に、ここまでの手順をまとめたコード全体を示します。

import pandas as pd

# pandas.Periodは一定の期間を表すオブジェクト
# freqパラメータに'S'(秒)を指定してPeriodオブジェクトを作成
period = pd.Period(freq="S", year = 2021, month = 9, day = 11, hour = 8, minute = 20, second = 45)

# 秒単位の頻度を持つPeriodオブジェクトを表示
print("Period...\n", period)

# 頻度を秒から分へ変換
# asfreq()に"T"を指定して変換を実行
res = period.asfreq('T')

# 変換後の結果を表示
print("\nFinal result after converting frequency ...\n", res)

実行結果

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

Period...
2021-09-11 08:20:45

Final result after converting frequency ...
2021-09-11 08:20

ご覧のとおり、元のPeriodオブジェクトは「2021-09-11 08:20:45」という秒単位の表現でしたが、asfreq('T')を適用したことで「2021-09-11 08:20」という分単位の表現に変換されました。秒の情報は切り捨てられ、分単位の精度で期間が扱えるようになります。同様の方法で、'H'(時間)や'D'(日)など他の頻度への変換も可能です。

  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入門:タイムスタンプを分単位のPeriod(期間)に変換する方法

    Pandasでタイムスタンプ(Timestamp)を期間(Period)に変換するには、timestamp.to_period() メソッドを使用します。このメソッドの freq パラメータで頻度を指定でき、分単位の頻度にしたい場合は「T」を設定します。必要なライブラリのインポートまず、Pandasをインポートします。import pandas as pdタイムスタンプオブジェクトの作成次に、pd.Timestamp() を使ってタイムスタンプオブジェクトを作成します。年・月・日・時・分・秒・マイクロ秒を引数として渡せます。timestamp = pd.Timestamp(2021, 9, 6