在Pandas中,resample方法用于對時間序列數據進行重新采樣。重新采樣是指將時間序列數據的頻率從一個頻率轉換為另一個頻率,比如從按天采樣轉換為按月采樣。
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)
參數說明:
rule: 重新采樣的規則,可以是字符串(如’D’,‘M’),也可以是一個pandas DateOffset對象(如pd.DateOffset(months=1))。
axis: 要重新采樣的軸,默認為0(行索引)。
closed: 用于指定在重新采樣中哪個端是閉合的,默認為None,表示兩個端都是開放的。
label: 在重新采樣中,用于指定聚合結果的標簽是聚合區間的左端還是右端,默認為None,表示使用聚合區間的右端作為標簽。
convention: 用于指定重新采樣的時間標簽是表示區間的開始還是結束,默認為’start’,表示表示區間開始。
kind: 用于指定聚合區間的類型,默認為None,表示使用默認的聚合區間類型。
loffset: 用于指定偏移量,即重新采樣結果的索引的偏移量,默認為None。
base: 用于指定重新采樣的基準,默認為0,表示使用0作為基準。
on: 用于指定重新采樣的列,默認為None,表示對所有列進行重新采樣。
level: 用于指定重新采樣的層級,默認為None,表示對所有層級進行重新采樣。
origin: 用于指定聚合區間的原點,默認為’start_day’,表示聚合區間的原點為每天的開始。
offset: 用于指定聚合區間的偏移量。
resample方法返回一個Resampler對象,可以使用該對象的聚合方法進行聚合操作,比如mean()、sum()、min()、max()等。
示例代碼如下:
import pandas as pd
# 創建一個包含日期和數值的DataFrame
df = pd.DataFrame({'date': pd.date_range(start='2022-01-01', end='2022-01-31'), 'value': range(31)})
# 將時間序列數據按月重新采樣,并計算每個月的平均值
resampled_df = df.resample('M', on='date').mean()
print(resampled_df)
輸出結果為:
value
date
2022-01-31 15.516129