我想在多个列上执行pandas合并,其中一列是索引列。
以下是示例数据框:
df1 = pd.DataFrame(np.random.rand(4,4), columns=list('ABCD'))
df2 = pd.DataFrame(np.random.rand(4,4), columns=list('EFGH'), index= [5,2,4,1])
df1['E'] = ['hello','hello','hello','world']
df2['E'] = ['world','world','hello','hello']
我想在索引和列E上执行内部合并,以便它只返回一行:(index,E)=(1,'hello')。
答案 0 :(得分:2)
这是怎么回事?
In [82]: pd.merge(df1.reset_index(), df2.reset_index(), on=['index','E']).set_index('index')
Out[82]:
A B C D E F G H
index
1 0.516878 0.56163 0.082839 0.420587 hello 0.62601 0.787371 0.121979