我有 3 個(gè)熊貓數(shù)據(jù)框,每個(gè)包含 1 列。df1 = pd.DataFrame({'col1':[111, 222, 333, 444, 555]})df2 = pd.DataFrame({'col2':[222, 333, 555]})df3 = pd.DataFrame({'col3':[111, 222, 333, 666]})我知道如何沿列連接它們:pd.concat([df1, df2, df3], axis=1)col1 col2 col3111 222 111222 333 222333 555 333444 NaN 666555 NaN NaN我想要的是,所有列的第一行必須是111,如果111不可用,它將是NaN,這適用于后續(xù)行。我想對(duì)數(shù)字進(jìn)行排序,以便最終輸出是這樣的:col1 col2 col3111 NaN 111222 222 222333 333 333444 NaN NaN555 555 NaNNaN NaN 666這在熊貓中可能嗎?
2 回答

慕容森
TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊
您可以嘗試合并第一列上的數(shù)據(jù)框
df= f1
for f in [df2,df3]:
df = df.merge(f,left_on=df.columns[0],right_on=f.columns[0],how='outer')
出去:
col1 col2 col3
0 111.0 NaN 111.0
1 222.0 222.0 222.0
2 333.0 333.0 333.0
3 444.0 NaN NaN
4 555.0 555.0 NaN
5 NaN NaN 666.0
添加回答
舉報(bào)
0/150
提交
取消