Pandas DataFrame.resample() 関数

Minahil Noor 2023年1月30日
  1. pandas.DataFrame.resample() の構文
  2. コード例:DataFrame.resample() 週単位で系列のデータを再サンプルするメソッド
  3. コード例:DataFrame.resample() 月単位で系列データを再サンプルする方法
Pandas DataFrame.resample() 関数

Python Pandas DataFrame.resample() 関数は時系列データをリサンプルします。

pandas.DataFrame.resample() の構文

DataFrame.resample(
    rule,
    axis=0,
    closed=None,
    label=None,
    convention="start",
    kind=None,
    loffset=None,
    base=None,
    on=None,
    level=None,
    origin="start_day",
    offset=None,
)

パラメータ

rule オフセット文字列または変換対象を表すオブジェクトです。
axis アップサンプリングとダウンサンプリングのどちらの軸を使用するかを指定します。Series の場合、これはデフォルトでは 0、つまり行に沿った方向を意味します。
closed ビン間隔のどちら側を閉じるかを指定します。これには 2つのオプションがある。rightleft の 2つのオプションがあります。
label バケットにラベルを付けるための bin edge ラベルを指定します。これには 2つのオプションがあります。rightleft の 2つのオプションがあります。
convention startendse の 4つのオプションがあります。PeriodIndex の場合のみ、ルールの start または end を使用します。
kind 結果のインデックスの種類を指定します。オプションは 2つある。timestampperiod の 2つのオプションがあります。timestamp は結果のインデックスを DateTimeIndex に変換し、period は結果のインデックスを PeriodIndex に変換します。
loffset リサンプリングされた時間ラベルを調整します。
base 整数です。デフォルト値は 0 です。
on これは、リサンプリングのためのインデックスの代わりに使用するカラムの名前を表します。カラムは日付に似ていなければなりません。
level これは、リサンプリングに使用するレベルの名前を表します。レベルは日付のようなものでなければなりません。
origin グループ化を調整するためのタイムスタンプです。これには 3つのオプションがあります。epochstartstart_day の 3つのオプションがあります。
offset これは、origin パラメータに追加されたオフセット timedelta を表します。

戻り値

再サンプルされたオブジェクトを返します。

コード例:DataFrame.resample() 週単位で系列のデータを再サンプルするメソッド

import pandas as pd

index = pd.date_range('1/1/2021', periods=30, freq='D')
series = pd.Series(range(30), index=index)
print("The Original Series is: \n")
print(series)

series1= series.resample('W').sum()
print("The Resampled Data is: \n")
print(series1)

出力:

The Original Series is: 

2021-01-01     0
2021-01-02     1
2021-01-03     2
2021-01-04     3
2021-01-05     4
2021-01-06     5
2021-01-07     6
2021-01-08     7
2021-01-09     8
2021-01-10     9
2021-01-11    10
2021-01-12    11
2021-01-13    12
2021-01-14    13
2021-01-15    14
2021-01-16    15
2021-01-17    16
2021-01-18    17
2021-01-19    18
2021-01-20    19
2021-01-21    20
2021-01-22    21
2021-01-23    22
2021-01-24    23
2021-01-25    24
2021-01-26    25
2021-01-27    26
2021-01-28    27
2021-01-29    28
2021-01-30    29
Freq: D, dtype: int64
The Resampled Data is: 

2021-01-03      3
2021-01-10     42
2021-01-17     91
2021-01-24    140
2021-01-31    159
Freq: W-SUN, dtype: int64

この関数は、週単位でリサンプルされた合計を返しました。

コード例:DataFrame.resample() 月単位で系列データを再サンプルする方法

import pandas as pd

index = pd.date_range('1/1/2021', periods=30, freq='D')
series = pd.Series(range(30), index=index)
print("The Original Series is: \n")
print(series)

series1= series.resample('M').sum()
print("The Resampled Data is: \n")
print(series1)

出力:

The Original Series is: 

2021-01-01     0
2021-01-02     1
2021-01-03     2
2021-01-04     3
2021-01-05     4
2021-01-06     5
2021-01-07     6
2021-01-08     7
2021-01-09     8
2021-01-10     9
2021-01-11    10
2021-01-12    11
2021-01-13    12
2021-01-14    13
2021-01-15    14
2021-01-16    15
2021-01-17    16
2021-01-18    17
2021-01-19    18
2021-01-20    19
2021-01-21    20
2021-01-22    21
2021-01-23    22
2021-01-24    23
2021-01-25    24
2021-01-26    25
2021-01-27    26
2021-01-28    27
2021-01-29    28
2021-01-30    29
Freq: D, dtype: int64
The Resampled Data is: 

2021-01-31    435
Freq: M, dtype: int64

この関数は、月単位で再サンプリングされた合計を返しました。

関連記事 - Pandas DataFrame