两组数据帧列的简单关联

2024-03-29 15:34:21 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有一个好方法可以得到两个分组数据帧列的简单关联?在

不管pandas .corr()函数想要返回一个相关矩阵,这似乎没有关系。E、 g

i = pd.MultiIndex.from_product([['A','B','C'], np.arange(1, 11, 1)], names=['Name','Num'])
test = pd.DataFrame(np.random.randn(30, 2), i, columns=['X', 'Y'])
test.groupby(['Name'])['X','Y'].corr()

退货

^{pr2}$

但显然我只对非对角项感兴趣。计算出这四个值然后尝试选择一个我想要的值,这看起来很愚蠢

test.groupby(['Name'])['X','Y'].corr().ix[0::2,'Y']

为了得到

A     X    0.152663
B     X   -0.155113
C     X    0.214197

Tags: 数据方法函数namefromtestpandas关系
1条回答
网友
1楼 · 发布于 2024-03-29 15:34:21

我希望像test.groupby('Name')['X'].corr('Y')这样的东西能正常工作,但它不起作用,当您传递序列本身(test['Y'])时,它会变慢。在这一点上,它似乎是最好的选择:

test.groupby('Name').apply(lambda df: df['X'].corr(df['Y']))
Out: 
Name
A   -0.484955
B    0.520701
C    0.120879
dtype: float64

这将迭代每个组并应用系列校正在每个分组的数据帧中。不同之处在于没有设置随机种子。在

相关问题 更多 >