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

通过 map 函数根据唯一 ID 将数据从 1 个数据集复制到另一个数据集

通过 map 函数根据唯一 ID 将数据从 1 个数据集复制到另一个数据集

眼眸繁星 2022-06-02 10:08:22
我正在匹配两个大型数据集,并尝试通过将原始数据集与其他数据集进行比较来执行更新、删除和创建操作。如何更新原始数据集中 10 列中的 2 或 3 列并保持其他列的值与以前相同?我尝试合并但无济于事。合并对我不起作用。原始数据:id | full_name   |   date1  | John        |   02-23-20062  | Paul Elbert |   09-29-20013  | Donag       |   11-12-20134  | Tom Holland |   06-17-2016其他数据:id | full_name  |   date1  | John       |   02-25-20182  | Paul       |   03-09-20013  | Donag      |   07-09-20174  | Tom        |   05-09-2016在尝试了这个之后,我手动检查了我没有得到预期的结果。original[['id']].merge(other[['id','date']],on='id')我可以用地图解决这个问题吗?当 ID 匹配时,更新日期列中的所有值,而不更改原始数据集名称列中的任何值
查看完整描述

2 回答

?
慕姐4208626

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

使用pandas.Series.map:


df['date']=df['id'].map(other_df.set_index('id ')['date'])

print(df)


  id    full_name              date

0    1   John             02-25-2018

1    2   Paul Elbert      03-09-2001

2    3   Donag            07-09-2017

3    4   Tom Holland      05-09-2016

检查其他条件:


cond=df.status.str.contains('new')  

df.loc['date',cond]=df.loc['id',cond].map(other_df.set_index('id ')['date'])


查看完整回答
反对 回复 2022-06-02
?
呼唤远方

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

DataFrame.update如果您在和上正确设置id为索引, Pandas就会这样做:originalother

original.update(other[["date"]])


查看完整回答
反对 回复 2022-06-02
  • 2 回答
  • 0 关注
  • 145 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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