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

如何使用python识别几个匹配的列值以选择行并将值从另一个表分配给新

如何使用python识别几个匹配的列值以选择行并将值从另一个表分配给新

慕容森 2022-04-27 13:25:30
我正在尝试使用 python 将数据帧中的 3 列的值匹配到另一个数据帧,并从匹配的数据帧中的另一列获取值。如何遍历我的数据框以选择与其他数据框匹配的列并从我想要的列中提取值?匹配条件是列 a、b 和 c 应该是相同的值。这是我的数据框 [df1]:这是另一个 datframe[df2]:这是我想要达到的结果[df3]:
查看完整描述

3 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

这应该足够了:

df3 = df2.merge(df1, on=['a','b','c'], how='inner')



查看完整回答
反对 回复 2022-04-27
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

您真正想要做的是加入或合并列。根据您的要求,使用以下链接满足您的查询,另请参阅一些教程。


new_df = df2.merge(df1, on=['a','b','c'], how='inner')

# use how='inner' when you want intersection

# use how='outer' when you want union


查看完整回答
反对 回复 2022-04-27
?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

您也可以执行以下操作而不是合并:


dft = pd.concat([df1, df2.iloc[:, :3]])

df = df2.loc[dft[dft.duplicated()].index]


print(df)

     a    b    c    d

0  fra  chi  nga  can

1  wal  bra  rsa  usa

4  ita  arg  sen  jam    


查看完整回答
反对 回复 2022-04-27
  • 3 回答
  • 0 关注
  • 199 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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