Pandas Periodオブジェクトの周波数:freqstrメソッドでデータの理解度を向上
pandas.Period.freqstr
メソッドは、pandas.Period
オブジェクトの周波数を文字列形式で返します。これは、データの頻度を簡単に理解し、可読性を高めるのに役立ちます。
構文
pandas.Period.freqstr()
引数
このメソッドは引数を取らず、オブジェクトの周波数に関連する文字列を直接返します。
返り値
周波数を表す文字列。例えば、D
は日周波数、M
は月周波数、Y
は年周波数を表します。
例
import pandas as pd
# Periodオブジェクトの作成
period = pd.Period('2020-01-01')
# 周波数の取得
frequency_str = period.freqstr()
# 結果の確認
print(frequency_str)
この例では、frequency_str
変数に 'D'
という文字列が格納されます。これは、period
オブジェクトが日周波数であることを意味します。
pandas.Period.freqstr
メソッドは、pandas.Series
やpandas.DataFrame
のdt
属性と組み合わせて使用できます。例えば、series.dt.freqstr
とすると、シリーズ内の各Period
オブジェクトの周波数を文字列形式で取得できます。
import pandas as pd
# サンプルデータの作成
dates = pd.to_datetime(['2020-01-01', '2020-02-01', '2020-03-01', '2020-04-01', '2020-05-01'])
values = [10, 20, 30, 40, 50]
# データフレームの作成
df = pd.DataFrame({'Date': dates, 'Value': values})
# `PeriodIndex` への変換
df['Date'] = pd.to_period(df['Date'])
# 周波数の取得
frequency_str = df['Date'].dt.freqstr()
# 結果の表示
print(frequency_str)
pandas.Period.freq 属性
pandas.Period
オブジェクトには、freq
属性があり、オブジェクトの周波数を Offset
オブジェクトとして直接取得できます。Offset
オブジェクトは、周波数単位 (日、月、年など) とオフセット (いくつ進むか) を表す情報を持っています。
import pandas as pd
period = pd.Period('2020-01-01')
frequency_offset = period.freq
print(frequency_offset)
この例では、frequency_offset
変数に Offset(days=1)
という Offset
オブジェクトが格納されます。これは、period
オブジェクトが日周波数であることを意味します。
strftime フォーマット
pandas.Period
オブジェクトは、strftime
フォーマットを使用して文字列形式に変換できます。strftime
フォーマットには、周波数を表す様々な書式指定子があります。
import pandas as pd
period = pd.Period('2020-01-01')
frequency_str = period.strftime('%f')
print(frequency_str)
この例では、frequency_str
変数に 'D'
という文字列が格納されます。これは、%f
書式指定子が日を表すためです。
カスタム関数
独自の条件や要件に合わせて、周波数を文字列形式に変換するカスタム関数を作成することもできます。
import pandas as pd
def get_frequency_str(period):
if period.freq == 'D':
return '日周波数'
elif period.freq == 'M':
return '月周波数'
elif period.freq == 'Y':
return '年周波数'
else:
return '不明な周波数'
period = pd.Period('2020-01-01')
frequency_str = get_frequency_str(period)
print(frequency_str)
この例では、get_frequency_str
というカスタム関数を作成し、period
オブジェクトの周波数に応じて文字列を返します。
周波数マッピング
事前に周波数と文字列の対応関係を定義したマッピングを使用することもできます。
import pandas as pd
frequency_map = {
'D': '日周波数',
'M': '月周波数',
'Y': '年周波数',
}
period = pd.Period('2020-01-01')
frequency_str = frequency_map[period.freq]
print(frequency_str)
この例では、frequency_map
という辞書を作成し、周波数と文字列の対応関係を定義します。その後、period
オブジェクトの周波数をキーとして frequency_map
から対応する文字列を取得します。