如何将Pandas中的长A/C号码列以文本格式导出至Excel
解决DataFrame长账号导出Excel保留完整格式的方案
遇到长账号(超过15位)导出Excel时被转成科学计数或截断的问题,有三种实用解决方法:
方法1:提前将账号列转为字符串类型
直接把目标列转成字符串,导出时Excel会以文本形式保存完整内容:
# 假设你的DataFrame叫df,账号列是'A/C号码' df['A/C号码'] = df['A/C号码'].astype(str) # 导出文件,index=False去掉行索引 df.to_excel('账号数据.xlsx', index=False)
⚠️ 注意:如果原列是数值类型,要先处理缺失值(比如用fillna('')替换NaN),避免导出后出现'NaN'字样。
方法2:用ExcelWriter指定列格式(不修改原数据)
如果不想改动原DataFrame的数据,可以借助xlsxwriter引擎给目标列设置文本格式:
import pandas as pd # 初始化ExcelWriter,指定xlsxwriter引擎 with pd.ExcelWriter('账号数据.xlsx', engine='xlsxwriter') as writer: df.to_excel(writer, sheet_name='Sheet1', index=False) # 获取工作表对象 worksheet = writer.sheets['Sheet1'] # 创建文本格式 text_format = writer.book.add_format({'num_format': '@'}) # 找到账号列的Excel列号(pandas列索引从0开始,Excel从1开始) col_num = df.columns.get_loc('A/C号码') + 1 # 设置整列为文本格式 worksheet.set_column(col_num, col_num, None, text_format)
需要先安装依赖:pip install xlsxwriter
方法3:临时技巧——添加制表符前缀
如果只是临时导出应急,可以在账号字符串前加\t,强制Excel识别为文本:
df['A/C号码'] = '\t' + df['A/C号码'].astype(str) df.to_excel('账号数据.xlsx', index=False)
这种方法会在单元格里留一个制表符,不影响查看账号,但如果需要后续处理数据,记得去掉前缀。
内容的提问来源于stack exchange,提问作者pritesh
相关产品推荐
相关产品推荐

