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

我正在匹配两个大型数据集,并尝试通过将原始数据集与其他数据集进行比较来执行更新、删除和创建操作。如何更新原始数据集中 10 列中的 2 或 3 列并保持其他列的值与以前相同?


我尝试合并但无济于事。合并对我不起作用。


原始数据:


id | full_name   |   date

1  | John        |   02-23-2006

2  | Paul Elbert |   09-29-2001

3  | Donag       |   11-12-2013

4  | Tom Holland |   06-17-2016

其他数据:


id | full_name  |   date

1  | John       |   02-25-2018

2  | Paul       |   03-09-2001

3  | Donag      |   07-09-2017

4  | Tom        |   05-09-2016

在尝试了这个之后,我手动检查了我没有得到预期的结果。


original[['id']].merge(other[['id','date']],on='id')

我可以用地图解决这个问题吗?当 ID 匹配时,更新日期列中的所有值,而不更改原始数据集名称列中的任何值


眼眸繁星
浏览 146回答 2
2回答

慕姐4208626

使用pandas.Series.map:df['date']=df['id'].map(other_df.set_index('id ')['date'])print(df)  id    full_name              date0    1   John             02-25-20181    2   Paul Elbert      03-09-20012    3   Donag            07-09-20173    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'])

呼唤远方

DataFrame.update如果您在和上正确设置id为索引, Pandas就会这样做:originalotheroriginal.update(other[["date"]])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python