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
如果我能够将它们加入原始模型,则可以采用其他方法来计算相关性或关联性度量。
长风秋雁
相关分类