Python Pandas入門:PeriodIndex(PeriodArray)をasfreq()で指定した頻度に変換する方法
PythonのPandasライブラリでは、periodIndex.asfreq()メソッドを使うことで、PeriodArray(PeriodIndex)を指定した頻度に簡単に変換できます。この記事では、実際のコード例を交えながら、その使い方をわかりやすく解説します。
必要なライブラリのインポート
まずは、pandasをインポートします。
import pandas as pd
PeriodIndexオブジェクトの作成
次に、pd.PeriodIndex()を使ってPeriodIndexオブジェクトを作成します。PeriodIndexは、時間上の一定期間を示す序数値を保持する不変(イミュータブル)なndarrayです。freqパラメータで頻度を指定できます。
periodIndex = pd.PeriodIndex(['2021-09-25 07:30:35', '2019-10-30 04:15:45', '2020-07-15 02:55:15', '2022-06-25 09:40:55'], freq="Y")
作成したPeriodIndexオブジェクトを表示してみましょう。
print("PeriodIndex...\n", periodIndex)
asfreq()で頻度を変換する
頻度を変換するには、asfreq()メソッドの引数に変換後の頻度を指定します。ここでは、年単位(Y)から月単位(M)へ変換しています。
print("\nConvert..\n", periodIndex.asfreq('M'))
完全なコード例
以下に、これまでの手順をまとめた完全なサンプルコードを示します。
import pandas as pd
# PeriodIndexオブジェクトを作成
# PeriodIndexは、時間上の一定期間を示す序数値を保持する不変のndarray
# "freq"パラメータで頻度を設定
periodIndex = pd.PeriodIndex(['2021-09-25 07:30:35', '2019-10-30 04:15:45',
'2020-07-15 02:55:15', '2022-06-25 09:40:55'], freq="Y")
# PeriodIndexオブジェクトを表示
print("PeriodIndex...\n", periodIndex)
# PeriodIndexの頻度オブジェクトを表示
print("\nPeriodIndex frequency object...\n", periodIndex.freq)
# 文字列としてPeriodIndexの頻度を表示
print("\nPeriodIndex frequency object as a string...\n", periodIndex.freqstr)
# 指定した頻度に変換
# asfreq()のパラメータとして頻度を設定
print("\nConvert..\n", periodIndex.asfreq('M'))
実行結果
上記のコードを実行すると、次のような出力が得られます。
PeriodIndex... PeriodIndex(['2021', '2019', '2020', '2022'], dtype='period[A-DEC]') PeriodIndex frequency object... <YearEnd: month=12> PeriodIndex frequency object as a string... A-DEC Convert.. PeriodIndex(['2021-12', '2019-12', '2020-12', '2022-12'], dtype='period[M]')
ポイントのまとめ
- asfreq()メソッドは、PeriodIndexの頻度を別の頻度へ変換する際に使用します。
- 元のデータが「年(Y)」の場合、「月(M)」に変換すると各年の12月(年末)が返されます。
freqプロパティで頻度オブジェクトを、freqstrプロパティで文字列表現の頻度を確認できます。
このように、asfreq()を活用すれば、時系列データの粒度を柔軟に変更でき、月次・四半期・年次などさまざまな分析ニーズに対応できます。
-
Python PandasでTimedeltaを1時間単位の頻度で丸める方法
Timedeltaを指定した解像度(頻度)で丸めたい場合は、timestamp.round()メソッドを使用します。1時間ごとの頻度で丸めるには、freqパラメータに「H」を指定します。必要なライブラリのインポートまず、必要なライブラリをインポートします。import pandas as pdTimedeltaオブジェクトの作成TimeDeltasは、Python標準のdatetimeライブラリにおけるtimedeltaとは異なる表現形式を持つデータ型です。ここでは、pd.Timedelta()を使ってTimedeltaオブジェクトを作成します。timedelta = pd.Timedelta
-
Python Pandas入門:Timedeltaを指定した解像度で丸める方法
PythonのPandasライブラリで、Timedelta(時間差)を指定した解像度に丸めたい場合は、timestamp.round()メソッドを使用します。丸めの精度(解像度)は、freqパラメータで自由に設定できます。 Timedeltaを丸める基本的な手順 1. 必要なライブラリをインポートする まず、pandasをインポートします。 import pandas as pd 2. Timedeltaオブジェクトを作成する 次に、日・時・分・秒・ミリ秒・ナノ秒を含むTimedeltaオブジェクトを作成します。 timedelta = pd.Timedelta(2 days 10 hours