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

为何pd.concat(axis=0)在Python脚本中失效?Jupyter可正常运行

解决pd.concat垂直拼接报错问题

报错本质

虽然你确认两个DataFrame列数、列名、数据类型都一致,但脚本中实际传入pd.concat的对象维度不符合预期:报错提示维度1(列方向)一个是300、一个是6,说明其中一个对象被识别为一维数组/Series,或是被意外转置的DataFrame,而非你预期的(300,5)或(6,5)结构。

排查与修复步骤

  • 先确认对象实际形状:在拼接代码前添加打印语句,验证两个对象的真实结构:

    print("df_1 shape:", df_1.shape)
    print("df_2 shape:", df_2.shape)
    

    如果输出出现(300,)或(6,),说明对应对象是Series;如果是(5,300)或(5,6),说明对象被转置了。

  • 处理Series转DataFrame:如果其中一个对象是Series,将其转为列名匹配的DataFrame:

    # 假设df_1是Series,用df_2的列名对齐
    df_1 = df_1.to_frame(name=df_2.columns[0])
    # 若为多列误转成一维结构,检查前面代码是否有flatten、ravel等操作并修正
    
  • 修正转置的DataFrame:如果对象被意外转置,重新转置回来:

    df_1 = df_1.T  # 或df_2 = df_2.T,根据实际情况调整
    
  • 强制对齐列名:避免因大小写、空格或编码差异导致的列名隐性不匹配,拼接前统一列名:

    df_2.columns = df_1.columns
    # 再执行拼接
    result_df = pd.concat([df_1, df_2], axis=0, ignore_index=True)
    
  • 检查数据处理逻辑:Jupyter分步运行的变量状态和脚本连续运行可能不同,排查前面代码:

    • 读取数据时是否漏传参数(如pd.read_csv的usecols、skiprows)
    • 是否有修改DataFrame结构的操作(如drop列但未赋值回原变量)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 05:03:29