<分区>
我有这两个数据框:
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')
我得到一个带有新索引的新数据框:
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)