Python 计算一组股票的相同移动平均数

Python 计算一组股票的相同移动平均数,python,pandas,Python,Pandas,如果我有一只股票,我会将移动平均数计算为: 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:

如果我有一只股票,我会将移动平均数计算为:

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)

日期时间索引:819条条目,2011-06-30 00:00:00至2014-08-19 00:00:00
频率:B
数据列(共10列):
StockA 292非空值
StockB 303非空值
...
数据类型:float64(10)

…我如何使用面板指数或层次指数,一次计算出框架内所有股票的移动平均数?我还需要其他统计数据,如果这有区别的话…

如果您只需要附加带后缀的列,您可以只分配给所需的列名

ewma_col = [c + '_ewma' for c in df]
df[ewma_col] = df.apply(lambda x: pd.ewma(x, span=15))
如果您想要设置一个多索引,您可以这样做,首先设置多索引,然后添加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))

df.apply(pd.ewma,span=15)
好的,但是如何将结果存储在面板/层次索引数据框中?