python按列合并数据_python – 根据多个列值映射值和合并数据帧

我有以下数据帧:

df1:带有患者关键注释的数据框

AREA DATE_TIME CRITICAL ISSUE NOTES

0013 11/6/2017 2:25:00 P.M Nurse attended to the patient

1121 10/23/2017 6:43:00 A.M Completed an ER

1121 10/2/2017 9:30:00 P.M Admitted

df2:耐心等待细节

ZIP TIME_NOTED NAME OCCUPIED STATE

4568 10/1/2017 10:04:00 A.M Chris Y NORMAL

1121 10/23/2017 6:43:00 A.M Nancy Y CRITICAL

1121 10/2/2017 9:30:00 P.M Derek N CRITICAL

我必须使用df1中的DATE_TIME和AREA代码映射df2中的记录,并保留两个数据帧中的所有其他列.我尝试合并多个列,但没有按预期工作.

new_df = pd.merge(df1, df2, how='right', left_on=['Date_Time','AREA'], right_on = ['ZIP','TIME_NOTED'])

解决方法:

如果你为左/右_(区域/ zip,然后注明日期时间/时间)的列放置相同的顺序,它应该工作.我还将合并更改为内部,因此您只需获得具有相同压缩/区域和日期时间/时间的记录.

new_df = pd.merge(df1, df2, how='inner', left_on = ['AREA','DATE_TIME'], right_on = ['ZIP','TIME_NOTED'])

另一个可能的解决方案是创建一个“ID”列并合并它.

df1['ID'] = df1['AREA'].astype(str) + '_' + df1['DATE_TIME'].astype(str)

df2['ID'] = df2['ZIP'].astype(str) + '_' + df2['TIME_NOTED'].astype(str)

现在合并ID

new_df = pd.merge(df1, df2, how = 'inner',left_on = ['ID'], right_on = ['ID'])

这应该产生相同的表(添加ID列).

标签:python,pandas

来源: https://codeday.me/bug/20191003/1845842.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值