在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