我在合并具有不同行数的两个框架时遇到问题。第一个数据帧具有5K行,第二个数据帧具有20K行。两个帧中都有一个列“ id”,所有5K“ id”值将出现在具有20K行的帧中。

第一帧“ df”

     A    B    id    A_1    B_1
0    1    1    1     0.5    0.5
1    3    2    2     0.2    0.4
2    3    4    3     0.8    0.9


第二帧“ df_2”

     A    B    id
0    1    1    1
1    3    2    2
2    3    4    3
3    1    2    4
4    3    1    5


有希望的输出框架“ df_out”

     A    B    id    A_1    B_1
0    1    1    1     0.5    0.5
1    3    2    2     0.2    0.4
2    3    4    3     0.8    0.9
3    1    2    4     na     na
4    3    1    5     na     na


我尝试在'id'上合并,使我只剩下5k行。我正在寻找的操作是保留大数据框的所有行,并对大框架中不存在的数据保留Nan值。

谢谢

最佳答案

只需将how=outer指定为df.merge,即可使用两个DataFrame的并集。

>>> df.merge(df_2, how='outer')
     A  A_1    B  B_1   id
0  1.0  0.5  1.0  0.5  1.0
1  3.0  0.2  2.0  0.4  2.0
2  3.0  0.8  4.0  0.9  3.0
3  1.0  NaN  2.0  NaN  4.0
4  3.0  NaN  1.0  NaN  5.0

关于python - Pandas -合并不同大小的数据框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42287976/

10-12 16:53
查看更多