我有一个包含500K行的数据帧。
我有以下专栏:
Symbol Open High Low Close Volume
Date
01-Aug-2017 AADR 49.8800 49.8800 49.8800 49.8800 790
02-Aug-2017 AADR 49.8432 49.8432 49.8432 49.8432 684
我在数据帧中有2071个符号:
>>> grouped = df.groupby('Symbol')
>>> len(grouped)
2071
我想在一列上应用滚动均值函数(即关闭) 在每个组中添加平均值作为现有数据框中的额外列。
我相信我可以做到:
results = {}
for name, group in grouped:
ma_col = group[1].Close.ewm(span=10, min_periods=10).mean()
results[name] = ma_col
这给了我结果字典,然后我可以将其变成DataFrame
来使用。
是否有更高效(更好的表现)方式来做同样的事情?
答案 0 :(得分:2)
您可以使用groupby
+ transform
-
df.groupby('Symbol').Close.transform(lambda x: x.ewm(span=10, min_periods=10).mean())