我在两个数据帧中有一列'a',比如说df1和df2
df1型:
| ID | A | |
|------|---|--|
| ID1 | 5 | |
| ID2 | 6 | |
| ID3 | 7 | |
| ID4 | 8 | |
df2型:
| ID | A | |
|------|---|--|
| ID1 | 5 | |
| ID2 | 1 | |
| ID3 | 8 | |
| ID5 | 7 | |
| ID6 | 8 | |
| ID7 | 9 | |
需要更新的df1:
| ID | A | |
|------|---|--|
| ID1 | 5 | |
| ID2 | 1 | |
| ID3 | 8 | |
| ID4 | 8 | |
| ID5 | 7 | |
| ID6 | 8 | |
| ID7 | 9 | |
如果ID在df2中,我想用df2中的值更新df1中的列'A',否则我想在df1中保持相同的值。此外,如果在df2中有新的id,我想在df1中添加新的值
我已经看过pd.DataFrame.update的文档,它确实将df2中的值更新为df1,但是没有将新值添加到df1中。任何帮助都将不胜感激。提前谢谢
我认为需要:
解释:
首先^{} 两个
DataFrame
一起:因为创建了相同的} 删除重复项:
ID
,所以使用keep only last值^{最后按} 排序
ID
按^{您可以使用Pandas的merge方法做同样的事情
可以使用以下合并函数合并df1和df2:
这里我将df2与df1合并。outer使用来自两个数据帧的键的并集。Union将从df2获取所有密钥,并且仅从df1获取那些在df2中不可用的密钥
第二步是删除ID列中的重复行
这将删除列ID中的所有重复行,但第一次出现的行除外
第三步是根据ID列对行进行排序
相关问题 更多 >
编程相关推荐