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