为了账号安全,请及时绑定邮箱和手机立即绑定

组的关联和加入DataFrame

组的关联和加入DataFrame

哆啦的时光机 2021-05-04 17:39:10
import pandas as pdd = {'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   41   A   4   52   A   6   63   B   4   14   B   8   25   B   7   96   C   4   87   C   5   58   C   2   19   D   1   510  D   1   911  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.500000B    Val2  0.385727C    Val2  0.714575D    Val2 -0.500000我无法将数据连接到原始数据,因此它们看起来像这样。  Val1 Val2 Val3 Val4+++0   A   5   4  0.5000001   A   4   5  0.5000002   A   6   6  0.5000003   B   4   1  0.3857274   B   8   2  0.3857275   B   7   9  0.3857276   C   4   8  0.7145757   C   5   5  0.7145758   C   2   1  0.7145759   D   1   5 -0.50000010  D   1   9 -0.50000011  D   9   5 -0.500000如果我能够将它们加入原始模型,则可以采用其他方法来计算相关性或关联性度量。
查看完整描述

2 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

您可以通过对系列进行相关来稍微缩短相关代码:

df.groupby("Val1")["Val2"].corr(df["Val3"])


查看完整回答
反对 回复 2021-05-25
  • 2 回答
  • 0 关注
  • 130 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号