简体   繁体   English

在 Pandas groupby 上应用 ewm 函数

[英]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 分组并将valewm聚合

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.并非所有dataframeseries函数都为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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM