以这种方式合并到 python 数据帧的最快方法是什么?我有两个具有相似结构的数据框(都有一个主键 id 和一些值列)。我想要做的是根据id合并两个数据框。有没有什么方法可以基于 pandas 操作来做到这一点?我现在的实现方式如下:
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())
Run Code Online (Sandbox Code Playgroud)
这里,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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
merge和groupbya.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
Run Code Online (Sandbox Code Playgroud)