【发布时间】:2017-05-31 10:07:17
【问题描述】:
我有两个这样的数据框:
import pandas as pd
left = pd.DataFrame({'id1': ['a', 'b', 'c'], 'val1': [1, 2, 3]})
right = pd.DataFrame({'ID2': ['a', 'c', 'd'], 'val2': [4, 5, 6]})
id1 val1
0 a 1
1 b 2
2 c 3
ID2 val2
0 a 4
1 c 5
2 d 6
我想合并这两个数据框,进行内部合并,删除ID2,然后还使用id1 作为新索引。我想要的输出如下所示:
val1 val2
id1
a 1 4
c 3 5
我目前这样做如下:
res = pd.merge(left, right, left_on='id1', right_on='ID2', how='inner').drop('ID2', axis=1).set_index('id1')
这给了我想要的输出。
我的问题是是否已经有一个选项允许我
a) 在执行内部合并时删除一个键列,因为会有两个相同的列
和/或
b) 直接将索引设置为用于合并过程的键列之一。
我现在做的方式是要走的路还是有什么更聪明的/内置的?
【问题讨论】: