组的关联和加入DataFrame

import pandas as pd

d = {'Val1': ['A','A','A','B','B','B','C','C','C','D','D','D'], 'Val2': 

[5,4,6,4,8,7,4,5,2,1,1,9] , 'Val3': [4, 5,6,1,2,9,8,5,1,5,9,5]}

df = pd.DataFrame(data=d)

df

输出

Val1 Val2 Val3 Val4+++

0   A   5   4

1   A   4   5

2   A   6   6

3   B   4   1

4   B   8   2

5   B   7   9

6   C   4   8

7   C   5   5

8   C   2   1

9   D   1   5

10  D   1   9

11  D   9   5

可以使用此代码计算两列的相关性,但是我不确定这是否是最佳/最快的方法。


 vers1=df.groupby('Val1')[['Val2','Val3']].corr().iloc[0::2][['Val3']]

 vers2=df.groupby('Val1')[['Val2','Val3']].corr().iloc[0::2]['Val3']


A    Val2  0.500000

B    Val2  0.385727

C    Val2  0.714575

D    Val2 -0.500000

我无法将数据连接到原始数据,因此它们看起来像这样。


  Val1 Val2 Val3 Val4+++

0   A   5   4  0.500000

1   A   4   5  0.500000

2   A   6   6  0.500000

3   B   4   1  0.385727

4   B   8   2  0.385727

5   B   7   9  0.385727

6   C   4   8  0.714575

7   C   5   5  0.714575

8   C   2   1  0.714575

9   D   1   5 -0.500000

10  D   1   9 -0.500000

11  D   9   5 -0.500000

如果我能够将它们加入原始模型,则可以采用其他方法来计算相关性或关联性度量。


哆啦的时光机
浏览 131回答 2
2回答

长风秋雁

您可以通过对系列进行相关来稍微缩短相关代码:df.groupby("Val1")["Val2"].corr(df["Val3"])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python