python - 合并熊猫数据框并覆盖列
问题描述
以这种方式合并到 python 数据帧的最快方法是什么?我有两个具有相似结构的数据框(都有一个主键 id 和一些值列)。我想做的是根据id合并两个数据框。有没有基于熊猫操作的方法?我现在如何实现它的代码如下:
import pandas as pd
a = pd.DataFrame({'id': [1,2,3], 'letter': ['a', 'b', 'c']})
b = pd.DataFrame({'id': [1,3,4], 'letter': ['A', 'C', 'D']})
a_dict = {e[id]: e for e in a.to_dict('record')}
b_dict = {e[id]: e for e in b.to_dict('record')}
c_dict = a_dict.copy()
c_dict.update(b_dict)
c = pd.DataFrame(list(c.values())
在这里,c 相当于
pd.DataFrame({'id': [1,2,3,4], 'letter':['A','b', 'C', 'D']})
id letter
0 1 A
1 2 b
2 3 C
3 4 D
解决方案
combine_first
如果'id'
是您的主键,则将其用作您的索引。
b.set_index('id').combine_first(a.set_index('id')).reset_index()
id letter
0 1 A
1 2 b
2 3 C
3 4 D
merge
和groupby
a.merge(b, 'outer', 'id').groupby(lambda x: x.split('_')[0], axis=1).last()
id letter
0 1 A
1 2 b
2 3 C
3 4 D
推荐阅读
- git - 是否可以从远程指定的提交中下载单个文件?
- ruby-on-rails - 如何在没有 gmail 剪辑电子邮件的情况下在电子邮件页脚中显示版权符号?
- sql-server - SQL Server 为什么在为引用表中没有匹配键创建外键约束时出现错误?
- amazon-web-services - AWS EC2 实例定期删除安全组
- r - 如何将变量和数据集作为 R 函数中的单独输入输入?
- web-scraping - 如何在 requests.post() 中生成 Python XHR 请求
- python - 如何使用 Python 的 ipaddress 模块查找子网/ip 是否在更大的子网中?
- php - 如果它们位于同一服务器中,如何将下一个 js 连接为前端,将 codeignitor 连接为后端
- python - Matplotlib xticks 范围和标签问题
- jmeter - 如何使用 JMeter 测试单页应用程序的客户端性能测试