带多个列的分组

2024-09-29 22:19:35 发布

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

假设我有一个类似于下面的数据帧,那么如何使用groupby获得所有列之间的相关性呢?你知道吗

我所拥有的:

DAY    Val1    Val2    Val3
1      4       3       4
1      3       8       6
1      2       3       4 
2      4       3       4
2      3       8       6
2      2       3       4

我需要的是:

DAY    CorrVal1-Val2    CorrVal1-Val3   CorrVal2-Val3
1      0.54             0.12            0.45
2      0.4              0.34            0.36

我正在使用df.groupby('DAY')[['VAL1','VAL2','VAL3']].corr(),但这并没有给我假装得到的东西。 我想要这样的东西: enter image description here


Tags: 数据dfgroupbyday假装val1corrval2
1条回答
网友
1楼 · 发布于 2024-09-29 22:19:35

首先,你得到的结果是:

df.groupby('DAY')[['Val1','Val2', 'Val3']].corr()

不过,您仍然需要格式化结果以获得所需的输出,例如:

(df[~df['Val1'].eq(1)]
          .reset_index(1, drop=True)['Val1']
          .rename('CorrVal1-Val2'))

相关问题 更多 >

    热门问题