按熊猫计算逐行相关系数

时间:2020-08-12 13:54:27

标签: python pandas

我正在尝试像how can I calculate correlation between all possible rows

那样计算相关系数

我的代码 将熊猫作为pd导入

d = {'Name': ['A', 'B','C'], 'v1': [1,3, 4], 'v2': [3,2, 4], 'v3': [3,9 ,1]}
df = pd.DataFrame(data=d)
result = df.T.corr().unstack().reset_index(name="corr")

但它显示错误IndexError:列表索引超出范围。

谢谢您的协助

1 个答案:

答案 0 :(得分:1)

  1. 您首先需要确保 Name 是索引,以便转置有效
  2. 完成corr()之后,您需要重命名X轴
  3. 最后,您需要在reset_index()之后重命名您的列
d = {'Name': ['A', 'B','C'], 'v1': [1,3, 4], 'v2': [3,2, 4], 'v3': [3,9 ,1]}
df = pd.DataFrame(data=d).set_index("Name")
result = df.T.corr()
result.columns.set_names("NameX", inplace=True)
result = result.unstack().to_frame().reset_index().rename(columns={"Name":"NameY",0:"corr"})

输出

NameX NameY      corr
    A     A  1.000000
    A     B  0.381246
    A     C -0.500000
    B     A  0.381246
    B     B  1.000000
    B     C -0.991241
    C     A -0.500000
    C     B -0.991241
    C     C  1.000000
相关问题