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

如何将CSV转换为Excel文件并保留数值的int整数类型

CSV转XLSX数值变为文本类型的修复方案

核心原因是pandas读取CSV时,若数值存在前后空格、隐形符号、被引号包裹等情况,会被自动推断为字符串类型,导出到Excel后默认显示为文本格式,无法直接计算。
以下是可直接使用的调整方案:

  • 方案1:读取阶段自动转换数值类型
    读取CSV后调用convert_dtypes()方法,自动推断并转换为对应数值类型,适配大多数常规场景:
    r_csv = pd.read_csv(nowDate.strftime("%Y-%m-%d_%H_%M_%S") + ".csv").convert_dtypes()
    # 若确认所有列均为整数,可直接指定全局类型
    # r_csv = pd.read_csv(nowDate.strftime("%Y-%m-%d_%H_%M_%S") + ".csv", dtype="int64")
    
  • 方案2:脏数据场景下的强制转换
    如果CSV中的数值附带空白、引号等冗余字符,先清理内容再转数值类型:
    r_csv = pd.read_csv(nowDate.strftime("%Y-%m-%d_%H_%M_%S") + ".csv")
    # 逐列清理空白字符后转数值,无法转换的内容会置为空值方便排查
    for col in r_csv.columns:
        r_csv[col] = pd.to_numeric(r_csv[col].astype(str).str.strip(), errors="coerce")
    
  • 方案3:写入阶段规避引擎兼容问题
    旧版本pandas默认写入引擎可能存在格式兼容问题,可指定openpyxl引擎写入:
    save_xlsx = pd.ExcelWriter(nowDate.strftime("%Y-%m-%d_%H_%M_%S") + '.xlsx', engine="openpyxl")
    r_csv.to_excel(save_xlsx, index=False)
    # 高版本pandas推荐使用close()代替save()方法
    save_xlsx.close()
    

如果转换后出现空值,可排查对应位置的CSV原始内容是否包含非数字字符。

内容的提问来源于stack exchange,提问作者김정엽

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 14:15:03