[英]calculating the same moving average on a set of stocks
如果我只有一只股票,我将计算移动平均值为:
frame = sql.read_frame(...)
frame['ewma'] = ewma(frame['px'], span=15)
因此,如果我有一个充满价格数据的框架,则每只股票有一个系列:
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 819 entries, 2011-06-30 00:00:00 to 2014-08-19 00:00:00
Freq: B
Data columns (total 10 columns):
StockA 292 non-null values
StockB 303 non-null values
...
dtypes: float64(10)
...如何使用面板或层次结构索引一次就能最有效地计算框架中所有股票的移动平均线? 我也想要其他统计信息,如果那有所作为...
如果只需要带有后缀的其他列,则可以分配给所需的列名。
ewma_col = [c + '_ewma' for c in df]
df[ewma_col] = df.apply(lambda x: pd.ewma(x, span=15))
如果要设置MultiIndex,可以执行以下操作,首先设置MultiIndex,然后添加ewma条目。
df.columns = pd.MultiIndex.from_product([df.columns, ['price']])
ewma_col = [(c, 'ewma') for c, _ in df]
df[ewma_col] = df.apply(lambda x: pd.ewma(x, span=15))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.