【发布时间】:2021-09-17 20:59:14
【问题描述】:
我有一个数据框:
df=pd.dataframe({'group':['A','A','A','A','A','A','A','A','B','B','B','B','B','B','B','B'],'val1':[100,200,300,400,50,150,250,350,50,150,250,350,100,200,300,475],'val2':[3,5,10,-3,2,-5,89,12,35,5,10,-3,2,-5,89,12]})
我想计算滚动窗口为 3 的列“val1”和“val2”之间以及每个组内的相关系数。我想将此作为列添加到数据框中。我可以在不使用 groupby 的情况下做到这一点:
df['val1'].rolling(5).corr(df['val2'])
但我无法将其与 groupby 合并。
我正在寻找的输出是添加到原始 df 的列,如下所示:
| group | Val1 | Val2 | Correlation |
|---|---|---|---|
| A | 100 | 3 | Nan |
| A | 200 | 5 | Nan |
| A | 300 | 10 | Nan |
| A | 400 | -3 | Nan |
| A | 50 | 2 | 0.1 |
| A | 150 | -5 | -0.25 |
| A | 250 | 89 | 0.8 |
| A | 350 | 12 | 0.65 |
| B | 50 | 35 | Nan |
| B | 150 | 5 | Nan |
| B | 250 | 10 | Nan |
| B | 350 | -3 | Nan |
| B | 100 | 2 | -0.43 |
| B | 200 | -5 | 0.23 |
| B | 475 | 89 | 0.87 |
| B | 100 | 12 | 0.65 |
【问题讨论】:
标签: pandas pandas-groupby rolling-computation