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

使用Pandas读取Excel文件时丢失前导零的问题求助

解决Pandas读取Excel时前导零丢失的问题(长度不固定场景)

核心问题原因

Pandas默认会将Excel中的数值型单元格解析为int/float类型,导致前导零被自动去除。由于你的数据长度不固定,无法通过补零恢复,必须在读取阶段强制保留原始字符串格式。

解决方案

方案1:全局指定所有列为字符串类型

适合所有列都需要保留前导零的场景,通过dtype=str参数强制Pandas以字符串格式读取所有单元格:

def readDataFromFile(self, file):
    try:
        # 强制所有列以字符串类型读取,保留原始前导零
        df = pd.read_excel(file, dtype=str)
        data_list = df.values.tolist()
        print(f'{file} >> Read')
        return data_list
    except Exception as e:
        print(f'读取错误: {str(e)}')
        return

方案2:仅指定目标列为字符串类型

如果只有部分列需要保留前导零(比如列名为"Code"或列索引为0),可以精准指定对应列的类型,避免不必要的类型转换:

def readDataFromFile(self, file):
    try:
        # 仅将列名为"Code"的列以字符串类型读取
        df = pd.read_excel(file, dtype={"Code": str})
        # 或者用列索引指定:dtype={0: str}
        data_list = df.values.tolist()
        print(f'{file} >> Read')
        return data_list
    except Exception as e:
        print(f'读取错误: {str(e)}')
        return

额外提示

  • 不要用list作为变量名,它会覆盖Python内置的list类型,建议改为data_list这类有意义的名称。
  • 如果Excel中目标列本身是文本格式,Pandas默认会读取为字符串,前导零不会丢失;如果是数值格式,必须通过上述方法强制转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 22:55:56