我有一个包含三列的数据框 . ID用作我想使用groupby命令的标识符 . 在这里,我想为每个ID生成A和B之间的相关系数 . 这是我的数据帧的样子:
ID A B
1 5 7
1 3 4
2 4 5
2 7 6
2 9 1
我想将其转换为以下数据框:
ID A B Corr_Coeff
1 5 7 <Value 1>
1 3 4 <Value 1>
2 4 5 <Value 2>
2 7 6 <Value 2>
2 9 1 <Value 2>
这是我目前使用的代码,但似乎没有工作:
df['Corr_Coeff'] = df.groupby('ID')[['A','B']].corr()
如果有人可以帮助我在这里会很棒!提前致谢 .
1 回答
我认为需要map通过iloc按位置选择行,以删除
MultiIndex
使用reset_index:替代创建映射
Series
by corrwith,最后通过DataFrame.squeeze将1 column Dataframe
转换为Series
: