组合两个具有相同索引的数据帧(无序)

时间:2017-01-17 19:53:05

标签: python pandas

我不知道为什么这让我如此困惑。我正在尝试组合两个数据帧,并且两者共享相同的索引(尽管作为注释,它们可能不是相同的顺序)。

df1 = |firstrow  10|
      |secondrow 15|

df2 = |secondrow  115|
      |firstrow  1000|

我希望得到的数据框为:

result = |firstrow  10  1000|
         |secondrow 15   115|

我试过这样做:

df = pd.merge(df1,df2, on="INDEXNAME"), but it throws a KeyError on INDEXNAME

谢谢!

1 个答案:

答案 0 :(得分:1)

我认为您可以使用concat(默认为外连接):

df = pd.concat([df1, df2], axis=1)

如果需要内联:

df = pd.concat([df1, df2], axis=1, join='inner')

merge(默认为inner加入)参数left_indexright_index

df = pd.merge(df1, df2, left_index=True, right_index=True)

样品:

df1 = pd.DataFrame({'a':[10,15]}, index=['firstrow','secondrow'])
df2 = pd.DataFrame({'b':[115,1000]}, index=['secondrow','firstrow'])
print (df1)
            a
firstrow   10
secondrow  15

print (df2)
              b
secondrow   115
firstrow   1000

print (pd.concat([df1, df2], axis=1))
            a     b
secondrow  15   115
firstrow   10  1000

print (pd.merge(df1, df2, left_index=True, right_index=True))
            a     b
secondrow  15   115
firstrow   10  1000