在 Pandas 中跨多列排列行值

我有 3 个熊猫数据框,每个包含 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   col3

111    222    111

222    333    222

333    555    333

444    NaN    666

555    NaN    NaN

我想要的是,所有列的第一行必须是111,如果111不可用,它将是NaN,这适用于后续行。


我想对数字进行排序,以便最终输出是这样的:


col1   col2   col3

111    NaN    111

222    222    222

333    333    333

444    NaN    NaN

555    555    NaN

NaN    NaN    666

这在熊猫中可能吗?


富国沪深
浏览 155回答 2
2回答

慕容森

您可以尝试合并第一列上的数据框df= f1for f in [df2,df3]:    df = df.merge(f,left_on=df.columns[0],right_on=f.columns[0],how='outer')出去:    col1    col2    col30   111.0   NaN     111.01   222.0   222.0   222.02   333.0   333.0   333.03   444.0   NaN      NaN4   555.0   555.0    NaN5   NaN     NaN    666.0
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python