溫馨提示×

Pandas中resample方法詳解

小云
178
2023-08-11 14:48:55
欄目: 編程語言

在Pandas中,resample方法用于對時間序列數(shù)據(jù)進(jìn)行重新采樣。重新采樣是指將時間序列數(shù)據(jù)的頻率從一個頻率轉(zhuǎn)換為另一個頻率,比如從按天采樣轉(zhuǎn)換為按月采樣。

resample方法的基本語法是:

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

參數(shù)說明:

  • rule: 重新采樣的規(guī)則,可以是字符串(如’D’,‘M’),也可以是一個pandas DateOffset對象(如pd.DateOffset(months=1))。

  • axis: 要重新采樣的軸,默認(rèn)為0(行索引)。

  • closed: 用于指定在重新采樣中哪個端是閉合的,默認(rèn)為None,表示兩個端都是開放的。

  • label: 在重新采樣中,用于指定聚合結(jié)果的標(biāo)簽是聚合區(qū)間的左端還是右端,默認(rèn)為None,表示使用聚合區(qū)間的右端作為標(biāo)簽。

  • convention: 用于指定重新采樣的時間標(biāo)簽是表示區(qū)間的開始還是結(jié)束,默認(rèn)為’start’,表示表示區(qū)間開始。

  • kind: 用于指定聚合區(qū)間的類型,默認(rèn)為None,表示使用默認(rèn)的聚合區(qū)間類型。

  • loffset: 用于指定偏移量,即重新采樣結(jié)果的索引的偏移量,默認(rèn)為None。

  • base: 用于指定重新采樣的基準(zhǔn),默認(rèn)為0,表示使用0作為基準(zhǔn)。

  • on: 用于指定重新采樣的列,默認(rèn)為None,表示對所有列進(jìn)行重新采樣。

  • level: 用于指定重新采樣的層級,默認(rèn)為None,表示對所有層級進(jìn)行重新采樣。

  • origin: 用于指定聚合區(qū)間的原點,默認(rèn)為’start_day’,表示聚合區(qū)間的原點為每天的開始。

  • offset: 用于指定聚合區(qū)間的偏移量。

resample方法返回一個Resampler對象,可以使用該對象的聚合方法進(jìn)行聚合操作,比如mean()、sum()、min()、max()等。

示例代碼如下:

import pandas as pd
# 創(chuàng)建一個包含日期和數(shù)值的DataFrame
df = pd.DataFrame({'date': pd.date_range(start='2022-01-01', end='2022-01-31'), 'value': range(31)})
# 將時間序列數(shù)據(jù)按月重新采樣,并計算每個月的平均值
resampled_df = df.resample('M', on='date').mean()
print(resampled_df)

輸出結(jié)果為:

value
date
2022-01-31  15.516129

0