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

如何使用pd.ExcelFile读取Excel时将所有列设为字符串类型?

使用pd.ExcelFile指定全局字符串类型导入数据

当然可以用pd.ExcelFile实现指定数据类型的需求!其实ExcelFile.parse()方法和我们常用的pd.read_excel()共享大部分参数,其中就包括用来定义数据类型的dtype参数,刚好能解决你遇到的科学计数法问题。

你提到加载前不知道列名,需要把所有内容都以字符串类型导入,这个需求很容易实现——只需要在调用parse()的时候传入dtype=str,这样所有列都会被强制解析成字符串类型,从根源上避免数字被显示为科学计数法的情况。

先帮你修正原代码里的语法错误(原if语句的写法不符合Python规范),再给出完整的可运行代码:

import pandas as pd

# 先拼接完整的文件路径,用f-string更简洁直观
full_file_path = f"{path}\\{name}"

# 初始化ExcelFile对象
excel_file = pd.ExcelFile(full_file_path)

# 遍历所有工作表
for sheet_name in excel_file.sheet_names:
    # 解析时指定所有列的类型为字符串
    df = excel_file.parse(sheet_name, dtype=str)
    # 这里可以添加你的后续处理逻辑,比如查看数据或保存文件
    print(f"工作表 {sheet_name} 已完成解析,所有列均为字符串类型")

补充说明:

  • 如果之后你发现某几列需要保留原始数值类型,可以把dtype改成字典格式(比如dtype={"列名1": int, "列名2": float}),但当前场景下直接传str就能满足全局转字符串的需求。
  • 这种方式会把日期、数字等所有单元格内容都转为字符串,如果你后续需要恢复特定列的类型,可以用pd.to_numeric()或pd.to_datetime()单独处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:24:43