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.Seriespandas.DataFramedt 属性と組み合わせて使用できます。例えば、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 から対応する文字列を取得します。