使用pandas read_excel读取Excel时如何保留ID列的前导零
解决pandas读取Excel时ID列前导零丢失的问题
出现该问题的原因是pandas默认会自动推断列数据类型,常规格式下全为数字的ID列会被识别为整数类型,整数本身不存在前导零,因此会出现丢失。可通过以下两种方法解决:
读取时指定列类型(推荐方案)
调用pd.read_excel时通过dtype参数指定ID列按字符串类型读取,跳过自动类型推断,直接保留原始文本格式:
import pandas as pd # 请将字典中的'ID'替换为你实际使用的ID列列名 gco = pd.read_excel(r"path", dtype={'ID': str})
该方案适用于所有场景,无论ID长度是否统一都能完整保留原始值。
已读入数据后补零修复
若你已经将数据读入内存且不想重新读取,仅当ID列的长度固定时,可以通过字符串补零方法恢复前导零:
# 示例中6为ID的固定总长度,请根据你的实际ID长度修改 gco['ID'] = gco['ID'].astype(str).str.zfill(6)
注意:如果ID本身长度不统一,不要使用该方案,否则会给短ID补出多余的前导零,导致数据错误。
内容的提问来源于stack exchange,提问作者Jonnyboi
相关产品推荐
相关产品推荐

