我有两个共享(某些)ID的数据帧(在index.name中指定),我希望与它们相交。
所以给出:
dfA.index.name = 'id'
dfB.index.name = 'id'
和dfA
就像:
count
id
1 15
3 16
8 1
和dfB
就像:
owns
id
1 True
3 False
12 False
我想获得dfC就像:
count owns
id
1 15 True
3 16 False
我试过
s1 = pd.merge(dfA, dfB, how='inner', on=['id'])
没有成功
答案 0 :(得分:5)
我在这种情况下使用join
:
dfC = dfA.join(dfB, how='inner')
答案 1 :(得分:4)
您应该合并索引,而不是列:
s1 = pd.merge(dfA, dfB, left_index=True, right_index=True)
为索引指定名称不会使其成为列。
答案 2 :(得分:1)
我将使用pd.concat
pd.concat([df1,df2],join ='inner',axis=1)
Out[475]:
count owns
id
1 15 True
3 16 False