DatetimeIndex.freq 属性と関連する属性・メソッド
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 属性はナノ秒単位のオフセットを指定するために使用されます。