是否可以像这样在多索引数据帧上计算运行标准偏差(SD)?
elementRef.nativeElement.setAttibute(camelCaseAttribute, "true")
答案 0 :(得分:2)
您可以尝试将索引级别为0的df分组,并使用pd.rolling
计算具有指定滚动窗口长度的标准差
df.groupby(df.index.get_level_levels(0))['Value'].rolling(2).std()
或
来自@ayhan输入
df.groupby(level='Symbol')['Value'].rolling(2).std()
修改
计算列的累积标准偏差
df = df.assign(std=df['Value'].apply(lambda x:[x])).groupby(level='Symbol').apply(lambda x: x.cumsum())
df['std'] = df['std'].apply(lambda x: pd.Series(x).std())
或
df.groupby(df.index.get_level_levels(0))['Value'].transform(lambda x: [x[:i+1].std() for i in range(len(x))])
出局:
a NaN
b 4.963890
c 3.673994
d NaN
e 3.535534
f 2.516611
Name: val, dtype: float64