DatetimeIndex.freq 属性と関連する属性・メソッド

2024-04-02

pandas.DatetimeIndex.freq 属性は、DatetimeIndex オブジェクトの規則性を表すオブジェクトを返します。これは、DatetimeIndex オブジェクト内のタイムスタンプの間隔を理解するのに役立ちます。

属性値

  • freq 属性は、以下のいずれかの値を取ることができます。
    • None: DatetimeIndex オブジェクトに規則性がないことを示します。
    • pandas.offsets.DateOffset オブジェクト: オブジェクト間のオフセットを表します。
    • 文字列: オブジェクト間のオフセットを表す文字列です。例: "D" は日次、"M" は月次

import pandas as pd

# 日付範囲を作成
dti = pd.date_range('2023-01-01', '2023-12-31', freq='D')

# freq属性を確認
print(dti.freq)

# 出力: <DateOffset: days=1>

応用

DatetimeIndex.freq 属性は、以下の用途に使用できます。

  • データの規則性を検証
  • データのリサンプリング
  • 時系列分析

補足

  • DatetimeIndex.freq 属性は、DatetimeIndex オブジェクトが作成時に指定された規則性を反映します。
  • DatetimeIndex.inferred_freq 属性は、DatetimeIndex オブジェクト内のタイムスタンプから推測される規則性を返します。
  • DatetimeIndex.set_freq メソッドを使用して、DatetimeIndex オブジェクトの規則性を変更することができます。
  • pandas.Index オブジェクトは、freq 属性を持っていません。
  • pandas.TimedeltaIndex オブジェクトは、freq 属性を持っています。


pandas.DatetimeIndex.freq 属性のサンプルコード

freq 属性の確認

import pandas as pd

# 日付範囲を作成
dti = pd.date_range('2023-01-01', '2023-12-31', freq='D')

# freq属性を確認
print(dti.freq)

# 出力: <DateOffset: days=1>

規則性に基づいたデータの取得

# 月ごとの平均気温データ
df = pd.DataFrame({'temperature': [10, 12, 14, 16, 18, 20]}, index=pd.date_range('2023-01-01', '2023-06-30', freq='M'))

# 月ごとの平均気温を取得
monthly_average_temperature = df.resample('M').mean()

# 出力:
#       temperature
# 2023-01-31  12.0
# 2023-02-28  14.0
# 2023-03-31  16.0
# 2023-04-30  18.0
# 2023-05-31  20.0
# 2023-06-30  NaN

規則性に基づいたデータのリサンプリング

# 日付範囲を作成
dti = pd.date_range('2023-01-01', '2023-12-31', freq='D')

# 1時間ごとのデータに変換
resampled_dti = dti.resample('H')

# 出力:
# DatetimeIndex(['2023-01-01 00:00:00', '2023-01-01 01:00:00',
#                '2023-01-01 02:00:00', ..., '2023-12-31 22:00:00',
#                '2023-12-31 23:00:00'],
#               dtype='datetime64[ns]', freq='H')

時系列分析

# 株価データ
df = pd.read_csv('stock_prices.csv', index_col='Date')

# 日付インデックスの規則性を確認
print(df.index.freq)

# 出力: <DateOffset: days=1>

# 移動平均線を描画
df['SMA_50'] = df['Close'].rolling(50).mean()

# 出力:
#           Date  Open  High   Low  Close  Volume  SMA_50
# 0  2023-01-01  100.0  105.0  95.0  100.0  100000  NaN
# 1  2023-01-02   99.0  104.0  94.0   99.0   95000  NaN
# 2  2023-01-03   98.0  103.0  93.0   98.0   90000  NaN
# ...  ...  ...  ...  ...  ...  ...
# 247 2023-12-28  102.0  107.0  97.0  102.0  110000  99.80
# 248 2023-12-29  103.0  108.0  98.0  103.0  120000  100.20
# 249 2023-12-30  104.0  109.0  99.0  104.0  130000  100.60

#


pandas.DatetimeIndex.freq 属性のその他の方法

inferred_freq 属性

import pandas as pd

# 不規則な日付範囲を作成
dti = pd.to_datetime(['2023-01-01', '2023-01-03', '2023-01-05', '2023-01-07'])

# 推測される規則性を確認
print(dti.inferred_freq)

# 出力: <DateOffset: days=2>

strftime メソッド

DatetimeIndex オブジェクトの規則性を文字列で取得するには、strftime メソッドを使用できます。

import pandas as pd

# 日付範囲を作成
dti = pd.date_range('2023-01-01', '2023-12-31', freq='M')

# 規則性を文字列で取得
print(dti.strftime('%Y-%m'))

# 出力:
# ['2023-01' '2023-02' '2023-03' '2023-04' '2023-05' '2023-06'
#  '2023-07' '2023-08' '2023-09' '2023-10' '2023-11' '2023-12']

to_period メソッド

DatetimeIndex オブジェクトを特定の規則性に基づいた周期に変換するには、to_period メソッドを使用できます。

import pandas as pd

# 日付範囲を作成
dti = pd.date_range('2023-01-01', '2023-12-31', freq='D')

# 月ごとの周期に変換
monthly_periods = dti.to_period('M')

# 出力:
# PeriodIndex(['2023-01', '2023-02', '2023-03', '2023-04', '2023-05', '2023-06',
#               '2023-07', '2023-08', '2023-09', '2023-10', '2023-11', '2023-12'],
#              dtype='period[M]')

describe メソッド

DatetimeIndex オブジェクトの規則性を含む統計情報を取得するには、describe メソッドを使用できます。

import pandas as pd

# 日付範囲を作成
dti = pd.date_range('2023-01-01', '2023-12-31', freq='D')

# 統計情報を取得
print(dti.describe())

# 出力:
# ...
# freq  <DateOffset: days=1>
# ...



Pandas YearEnd オフセット:DatetimeIndex/Series/Resampling との連携

YearEnd オフセットは、年末 に日付を進めるオフセットです。例えば、2023-03-08 に YearEnd オフセットを適用すると、2023-12-31 になります。YearEnd オフセットは、以下のパラメータを受け取ります。n: オフセットの回数 (デフォルトは 1)



Pandas Data Offsets: pandas.tseries.offsets.BusinessMonthEnd.is_year_end 完全解説

pandas は、データ分析と機械学習のための強力な Python ライブラリです。Data offsets は、pandas の重要な機能であり、時系列データの操作を容易にします。BusinessMonthEnd とは?pandas. tseries


Pandasで営業日オフセットを扱う: BusinessHour.normalize 完全解説

pandas. tseries. offsets. BusinessHour. normalizeは、BusinessHourオフセットを正規化するために使用されます。これは、オフセットが営業日の開始時刻に丸められることを意味します。引数normalize: Trueの場合、オフセットは営業日の開始時刻に丸められます。Falseの場合、オフセットは変更されません。


会計年度に基づく四半期オフセット:pandas.tseries.offsets.FY5253Quarter

pandas. tseries. offsets. FY5253Quarter. qtr_with_extra_week は、会計年度に基づく四半期オフセットを表すクラスです。このオフセットは、13週からなる4つの四半期で構成される会計年度に使用されます。


Pandas.tseries.offsets.BusinessHour.weekmask徹底解説

pandas. tseries. offsets. BusinessHour. weekmask は、BusinessHour オブジェクトで使用される属性で、曜日ごとにビジネスデーとして扱われるかどうかを指定します。デフォルトでは月曜日から金曜日までの営業日がビジネスデーとなりますが、weekmask を使用して、この設定を変更することができます。



時系列データ分析に役立つ YearEnd.is_anchored 属性: Pandas Data Offsets の活用

pandas. tseries. offsets. YearEnd. is_anchored は、pandas ライブラリの Data Offsets 機能で使用される関数です。この関数は、YearEnd オフセットがアンカーされているかどうかを返します。


pandas.DataFrame.pct_change() 関数:前年比、移動平均など、データ分析に役立つ計算方法

概要pandas. DataFrame. pct_change() は、Pandas DataFrame の列の要素間における割合変化を計算する関数です。時間軸データの分析によく用いられ、前年比や前月比などの指標を算出する際に役立ちます。基本的な使い方


Pandas Series の shift メソッドで時系列データ分析をマスターしよう!

pandas. Series. shift メソッドは、Series の各要素を指定されたオフセット分だけ前後にずらす関数です。データ分析において、過去や未来のデータと比較したり、時系列データの分析に役立ちます。構文引数periods: ずらすオフセットの数。正の値で未来、負の値で過去にずれます。


Pandasで差をつけろ: Styler.applymap を使った高度なスタイル設定

pandas. io. formats. style. Styler. applymapは、PandasのDataFrameのセルに個別にスタイルを適用するための強力なツールです。セル値に基づいて、色、フォント、背景色などのスタイルを個別に設定できます。


Pandas上級者向け!Tick.nanosを使いこなして時間分析をレベルアップ

Pandas の Data Offsets は、時系列データのインデックスを操作するための強力なツールです。 pandas. tseries. offsets. Tick は、時間オフセットを表すためのクラスの一つで、nanos 属性はナノ秒単位のオフセットを指定するために使用されます。