加入两个pandas数据帧与第一个的索引?

时间:2015-08-21 13:39:58

标签: python pandas

我有两个数据框df1

    column1     column2
0   A           B
1   A           A
2   C           A
3   None        None
4   None        None

df2

    id          l
40  100005090   A
188 100020985   B

现在我想加入df1df2,但我不知道如何匹配索引。如果我只是df1.join(df2),则索引与df2对齐。也就是说,它找到df2的第40个条目,现在是从40开始的数据帧的第一个条目(df1)。如何告诉pandas将索引与df1对齐,这意味着df2的第一个条目实际上是索引40?也就是说,我想得到:

    id          l    column1     column2
40  100005090   A          A           B
188 100020985   B          A           A
...

1 个答案:

答案 0 :(得分:1)

您可以获取与df1长度相同的df片段,然后您可以覆盖索引值,然后join

In [174]:    
sub = df.iloc[:len(df1)]
sub.index = df1.index
df1.join(sub)

Out[174]:
            id  l column1 column2
40   100005090  A       A       B
188  100020985  B       A       A

如果dfs的长度相同,则不需要第一行,只需使用其他df的索引值覆盖索引。