我试图对我的数据计算Jarque Bera Bera检验(正态性检验),结果如下(链式操作后):
Data:
ranking Q1 Q2 Q3 Q4
Date
2009-12-29 nan nan nan nan
2009-12-30 0.12 -0.21 -0.36 -0.39
2009-12-31 0.05 0.09 0.06 -0.02
2010-01-01 nan nan nan nan
2010-01-04 1.45 1.90 1.81 1.77
... ... ... ... ...
2020-10-13 -0.67 -0.59 -0.63 -0.61
2020-10-14 -0.05 -0.12 -0.05 -0.13
2020-10-15 -1.91 -1.62 -1.78 -1.91
2020-10-16 1.21 1.13 1.09 1.37
2020-10-19 -0.03 0.01 0.06 -0.02
我使用这样的函数:
(data
.sort_values('Date')
.groupby([pd.Grouper(key='Date', freq='B'), 'ranking'])
['perf_corr']
.apply(lambda x: x.mean()*100)
.unstack()
.agg([lambda x: x.mean(),
lambda x: np.sqrt(x.var()),
lambda x: x.skew(),
lambda x: x.kurtosis(),
])
)
输出为:
Q1 Q2 Q3 Q4
<lambda> 8.89 9.20 7.63 7.30
<lambda> 15.77 16.19 16.93 17.59
<lambda> -1.04 -0.95 -0.79 -0.61
...
我的问题很简单,如何在我的链计算中替换为“mean”、“std”、“skew”…(我还计算其他函数)? 在新版本之前,lambda函数是<;lambda_1>;,。。。所以我用了:
.rename(index={'lambda_1': "mean"})
但现在已经不可能了
有没有继续的想法
解决方案
在管道前列出所需的行名称:
并在
.agg()
之后将其链接解释
将索引恢复为[0,1,2,…],并创建一个字典,将这些数字映射到所需的列名。在上面的示例中,映射字典看起来像
{0: "mean, 1: "std", 2: "skew", 3: "kurtosis"}
我还发现了一个解决方案:
它是有效的
相关问题 更多 >
编程相关推荐