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)
好的,但是如何将结果存储在面板/层次索引数据框中?