Python 如何正确合并数据帧?

Python 如何正确合并数据帧?,python,pandas,dataframe,Python,Pandas,Dataframe,我有要合并的数据帧: first = pd.DataFrame({ 'id': [1, 2], 'time': [1, 2] }) second = pd.DataFrame({ 'id': [2, 3], 'time': [3, 4] }) third = pd.DataFrame({ 'id': [3, 4], 'time': [5, 6] })

我有要合并的数据帧:

    first = pd.DataFrame({
        'id': [1, 2],
        'time': [1, 2]
    })
    second = pd.DataFrame({
        'id': [2, 3],
        'time': [3, 4]
    })
    third = pd.DataFrame({
        'id': [3, 4],
        'time': [5, 6]
    })

    first.merge(second, on='id', how='outer', suffixes=('', 2)).merge(third, on='id', how='outer', suffixes=('', 3))

我所拥有的:

    id  time  time2  time3
0   1   1.0    NaN    NaN
1   2   2.0    3.0    NaN
2   3   NaN    4.0    5.0
3   4   NaN    NaN    6.0
我怎样才能得到这个

    id  time  time2  time3
0   1   1.0    NaN    NaN
1   2   2.0    3.0    NaN
2   3   4.0    5.0    NaN
3   4   6.0    NaN    NaN

我需要将该值移到第一个空列,以便在每一行中,所有的N都位于右侧。

通过
转换
排序

df=df.transform(lambda x : sorted(x, key=pd.isnull),1)
Out[255]: 
    id  time  time2  time3
0  1.0   1.0    NaN    NaN
1  2.0   2.0    3.0    NaN
2  3.0   4.0    5.0    NaN
3  4.0   6.0    NaN    NaN