在 python 中创建 Pearson 相关系数的问题

Problem with creating Pearson correlation coefficient in python

问题:根据第三列的值创建 Pearson 相关系数。

首先,我有一个包含 3 列的数据框。 A、B 和 C

上校A 和 B 包含 float64 类型,而在 C 中有对象。 我想获得 A 列和 B 列的皮尔逊相关系数。

print(df['A'].corr(df['B'],method='pearson')) --> 这适用于整个列。

下一步我要奋斗了。 C 列只有 2 个值。我们称它们为 c1 和 c2。 我现在想获得 c1 和 c2 的系数。 我试过

print(df['A']&df['C']=='c1').corr((df['B']&df['C' ]=='c1'),方法='pearson')

对于 c2 也是如此。 记录的错误是:TypeError: unsupported operand type(s) for &: 'float' and 'str' 如何在不拆分数据帧的情况下获得两个系数?

提前致谢

这应该能达到您的要求:

print(df[df['C']=='c1']['A'].corr(df[df['C']=='c1']['B'],method='pearson'))

df[df['C']=='c1'] 检索数据框的子集,其中 C 列中的值为 'c1',然后您只需像往常一样调用您想要的列。