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

使用Pandas将CSV转XLS时COL3列头部缺失的问题求助

问题分析与修复方案

核心问题

  1. 分隔符配置错误:你的CSV文件是空格/多空格分隔,但脚本中设置了sep="|",导致Pandas无法正确拆分列,COL3的内容被错误识别,整列被判定为空值。
  2. 不必要的列删除操作:dropna(axis=1, how="all")会删除所有行均为空的列,由于前面解析错误导致COL3被判定为全空,最终被移除,所以XLS中看不到该列头。

修复后的脚本

import os
import pandas as pd

os.chdir("/dev/test/test01/sub/subdir01/")

# 读取CSV:修正分隔符,移除dropna操作
col_names = ["COL1", "COL2", "COL3"]
# 使用正则匹配任意空白字符作为分隔符,适配多空格场景
df_new = pd.read_csv(
    "test_report.csv",
    quotechar='"',
    names=col_names,
    sep=r"\s+",  # 替换原sep="|",匹配任意数量空格/制表符
    skiprows=1,
    low_memory=False,
    error_bad_lines=False,
    header=None
)

# 保存XLSX文件
file = f"test_report{pd.Timestamp('now').strftime('%Y%m%d_%I%M')}.xlsx"
df_new.to_excel(file, index=False)

额外说明

  • 如果你的CSV原表头和col_names完全一致,也可以简化读取逻辑,直接用原表头,无需手动指定names和skiprows:
    df_new = pd.read_csv(
        "test_report.csv",
        sep=r"\s+",
        low_memory=False,
        error_bad_lines=False
    )
    
  • 若后续有保留dropna的需求,但不想删掉含部分非空值的列,可调整参数为how="any",或通过subset指定保留列,但此场景下直接移除该操作更贴合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 06:56:54