Home > Net >  Pandas how to perform outer merge with specific order of adding rows
Pandas how to perform outer merge with specific order of adding rows

Time:03-15

I have two data frames:

   df:
      col1  col2
    0   x   1
    1   a   2
    2   b   3
    3   c   4

and

df2:
      col1  col2
    0   x   1
    1   a   2
    2   f   6
    3   c   4

And I want to obtain data frame in which new row from df2 will be added to new data frame after row with the same index from the df, like this:

  col1  col2
0   x   1
1   a   2
2   b   3
3   f   6
4   c   4

CodePudding user response:

df1 = pd.DataFrame({
    'col1': ['x', 'a', 'b', 'c'],
    'col2': [1, 2, 3, 4]
})

df2 = pd.DataFrame({
    'col1': ['x', 'a', 'f', 'c'],
    'col2': [1, 2, 6, 4]
})

In order to get your output, I concatenated the two dataframes and sorted by the index, as requested, then you can set the index in order with reset_index().

df = pd.concat([df1, df2]).drop_duplicates().sort_index().reset_index(drop=True)
# Output
  col1  col2
0    x     1
1    a     2
2    b     3
3    f     6
4    c     4
  • Related