簡體   English   中英

dataframe ewm 用於 groupby 重采樣

[英]dataframe ewm for groupby resample

我有如下數據。

在此處輸入圖像描述

是否有可能得到如下的指數加權平均值? 下面的代碼拋出錯誤

df.groupby(['name']).resample('1s')['value'].ewm(span=1).mean()

首先,您必須確保 dataframe 索引是一個時間序列。 利用:

df.index = pd.to_datetime(df['time'], format='%H:%M:%S')

然后將您的代碼修改為:

df.groupby(['name']).resample('1s')['value'].ffill().ewm(span=1).mean()

ffill() is added before calling ewm() in order to convert the DatetimeIndexResamplerGroupby object to DataFrame object which you can then use the ewm() function.

測試代碼和output:

    data = {'time': ['0:00:02', '0:00:04', '0:00:06', '0:00:08'], 'name': ['n1', 'n2', 'n1', 'n2'], 'value': [10, 1000, 20, 1500]}
    df = pd.DataFrame(data)
    df.index = pd.to_datetime(df['time'], format='%H:%M:%S')
    df.groupby(['name']).resample('1s')['value'].ffill().ewm(span=1).mean()

name  time               
n1    1900-01-01 00:00:02      10.0
      1900-01-01 00:00:03      10.0
      1900-01-01 00:00:04      10.0
      1900-01-01 00:00:05      10.0
      1900-01-01 00:00:06      20.0
n2    1900-01-01 00:00:04    1000.0
      1900-01-01 00:00:05    1000.0
      1900-01-01 00:00:06    1000.0
      1900-01-01 00:00:07    1000.0
      1900-01-01 00:00:08    1500.0
Name: value, dtype: float64

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM