You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DataFrame追加异常:欲行追加却成列追加,求问题排查方案

问题原因与解决方案

这种情况几乎都是因为两个DataFrame的列名不匹配导致的!

当你调用df1.append(df2)时,pandas会按照列名进行对齐合并:如果两个DataFrame的列名完全一致,才会把df2的行追加到df1底部;但如果列名不同(哪怕是大小写差异、列顺序不一样,或者列的数量不一致),pandas会保留所有列,缺失的位置用NaN填充,看起来就像是把df2的列“拼”到了df1右侧。

具体排查与解决步骤:

  1. 先检查列名是否一致
    运行以下代码确认两个DataFrame的列名:

    print("df1列名:", df1.columns)
    print("df2列名:", df2.columns)
    

    如果列名不同,把df2的列名改成和df1完全一致:

    # 直接复用df1的列名
    df2.columns = df1.columns
    

    要是列顺序不对,也可以手动指定列顺序对齐:

    df2 = df2[df1.columns]
    
  2. 推荐使用pd.concat()替代append()
    从pandas 1.4.0版本开始,append()方法已经被弃用了,官方更推荐用pd.concat(),逻辑更清晰,还能避免一些隐性问题:

    import pandas as pd
    appendDf = pd.concat([df1, df2], ignore_index=True)
    

    其中ignore_index=True会重置合并后的索引,避免出现重复索引的问题。

  3. 确认列数一致
    还要确保两个DataFrame都是2列,要是其中一个列数不对,合并后自然会出现多列的情况。

内容的提问来源于stack exchange,提问作者user3476463

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:53:43