[英]dataframe ewm for groupby resample
首先,您必須確保 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.