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

Pandas导出DataFrame为CSV时如何保留文本列的前导零

保留DataFrame导出CSV时字符串列前导零的解决方案

首先提前校验目标列的类型,确认是字符串格式,避免上游类型转换导致前导零丢失:

# 查看列类型
print(df['你的目标列名'].dtype)
# 若不是字符串/object类型,先执行转换
df['你的目标列名'] = df['你的目标列名'].astype('string')

不同场景的实现方案

  • 场景1:仅用文本编辑器(记事本、VS Code等)打开CSV
    直接使用默认导出逻辑即可,此时CSV文件内的原始值会完整保留前导零。你观测到的前导零丢失,绝大多数是Excel打开CSV时自动将纯数字字符串识别为数值类型导致的,并非导出阶段丢失。
  • 场景2:需要用Excel打开CSV时也保留前导零
    可选以下两种常用方式实现:
    1. 给目标列追加不可见制表符,强制Excel识别为文本
    df['你的目标列名'] = df['你的目标列名'] + '\t'
    df.to_csv('导出文件路径.csv', index=False, encoding='utf-8-sig')
    
    1. 导出时指定非数值列自动加引号,需要引入csv模块的常量配置quoting参数
    import csv
    df.to_csv('导出文件路径.csv', index=False, encoding='utf-8-sig', quoting=csv.QUOTE_NONNUMERIC)
    
  • 场景3:不需要纯文本CSV格式,可直接导出为xlsx
    直接导出为Excel格式可以从根源避免该问题,导出时指定目标列为文本格式即可:
    import pandas as pd
    writer = pd.ExcelWriter('导出文件路径.xlsx', engine='xlsxwriter')
    df.to_excel(writer, index=False, sheet_name='Sheet1')
    workbook = writer.book
    worksheet = writer.sheets['Sheet1']
    # 定义文本格式
    text_format = workbook.add_format({'num_format': '@'})
    # 假设目标列是第2列(A列为第0列,按实际列索引调整前后两个参数)
    worksheet.set_column(1, 1, None, text_format)
    writer.close()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 06:18:05