python - 如何计算多变量 1 列的相关系数

标签 python pandas correlation

Category  SubCategory  Month  Value
A         A1           Jan     1
A         A1           Feb     2
A         A1           Mar     3
A         A2           Jan     2
A         A2           Feb     3
A         A2           Mar     5
B         B1           Jan     1
B         B1           Feb     6
B         B1           Mar     7
B         B2           Jan     3
B         B2           Feb     6
B         B2           Mar     7

我有一个像这样的 pandas df 示例。我想计算子组类别 A1 和 A2、B1 和 B2 之间的相关系数,但不是 A1 和 B1 等之间的相关系数。我的最终目标是得到一个如下表:

    A1        A2        B1     B2
A1  1.0000  0.9820      
A2  0.9820  1.0000      
B1                    1.0000    0.9963
B2                    0.9963    1.0000

有人可以帮我编写Python代码吗?

显然,这个为每个子类别提供了 1 的正确值

df.groupby('SubCategory').corr()

最佳答案

第一个是pivot问题,然后只需使用corr

pd.concat([x.pivot('Month','SubCategory','Value').corr() for _,x in df.groupby('Category')])
                   A1        A2        B1        B2
SubCategory                                        
A1           1.000000  0.981981       NaN       NaN
A2           0.981981  1.000000       NaN       NaN
B1                NaN       NaN  1.000000  0.996271
B2                NaN       NaN  0.996271  1.000000

关于python - 如何计算多变量 1 列的相关系数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53755029/

相关文章:

python - 如何访问多索引 Panda 数据框中的先前行

python - 如何从函数中动态删除装饰器?

python - 使用sqlalchemy删除父项时如何使子项的外键无效?

python-3.x - 如何根据组 ID 生成训练-测试-分割?

python - 选择具有非零值且在 pandas 中共享索引且无循环的列

r - 如何在 corrplot() 中以数字方式可视化置信区间?

从相关输出中移除 NA

python - 如何从我的 Django 数据库中检索行数据作为列表?

python-docx: 添加来自网络的图片

r - 使用 cor() 计算相关性,仅适用于数值列