【发布时间】:2016-06-06 17:48:54
【问题描述】:
我有这两个数据框:
left = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
'B': ['B0', 'B1', 'B2', 'B3'],
'key': ['K0', 'K1', 'K0', 'K1']},
index = [9,10,11,12])
right = pd.DataFrame({'C': ['C0', 'C1'],
'key': ['K0', 'K1']})
当我运行 pd.merge(left, right, on='key') 时,我得到一个带有 new 索引的新数据框:
A B key C
0 A0 B0 K0 C0
1 A2 B2 K0 C0
2 A1 B1 K1 C1
3 A3 B3 K1 C1
我想要的是这个
A B key C
9 A0 B0 K0 C0
11 A2 B2 K0 C0
10 A1 B1 K1 C1
12 A3 B3 K1 C1
我可以通过pd.merge(left, right, on='key', right_index = True) 得到它,但我觉得这更像是一个巧合而不是功能。
编辑
所以解决方案是这样的:
left.merge(right.set_index("key"), left_on="key", right_index = True)
【问题讨论】: