[英]Apply ewm function on Pandas groupby
I have this DataFrame我有这个数据帧
ddd = pd.DataFrame({'day':['m','t','m','t','m','t','m','t']
,'val':[15,2,10,4,5,8,2,10]})
I want to groupby by day
and aggregate the val
with ewm我想按day
分组并将val
与ewm聚合
If I do groupby and mean I get this如果我做 groupby 并且意味着我得到了这个
ddd.groupby(['day']).mean()
val
day
m 8
t 6
Now same like this if I try现在就像这样,如果我尝试
ddd.groupby(['day']).ewm(com=1.0).mean()
I get error AttributeError: 'DataFrameGroupBy' object has no attribute 'ewm'
我收到错误AttributeError: 'DataFrameGroupBy' object has no attribute 'ewm'
My expected output would look like this我的预期输出看起来像这样
val
day
m 4.733333
t 8.133333
Not all dataframe
or series
functions are implemented for groupby
objects.并非所有dataframe
或series
函数都为groupby
对象实现。 But you can use apply
to get your expected result但是您可以使用apply
来获得预期的结果
ddd.groupby(['day']).apply(lambda x: x.ewm(com=1.0).mean().iloc[-1])
Out:出去:
val
day
m 4.733333
t 8.133333
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.