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

Pandas read_excel如何处理以逗号作为小数分隔符的Excel数据

无需转CSV的Excel逗号小数分隔符读取方案

方案1:读取后批量替换转换(推荐)

原理:以逗号作为小数分隔符的数值被pandas默认读取后会识别为字符串类型,直接对目标列做字符替换后转浮点型即可,适配所有系统环境,性能足够处理119个工作表的量级。
代码示例:

import pandas as pd

# 初始化Excel文件对象,减少重复IO开销
excel_file = pd.ExcelFile("你的Excel文件路径.xlsx")

# 按需配置目标工作表和数值列
target_sheets = excel_file.sheet_names  # 读取全部工作表可直接用这个配置
# target_sheets = ["Sheet1", "Sheet3"]  # 只读取指定工作表就用这个写法
numeric_cols = ["数值列1", "数值列2", "数值列3"]  # 替换为你要读取的数值列列名

processed_data = []

for sheet_name in target_sheets:
    # 读取当前工作表的指定列,统一读为字符串避免自动识别异常
    df = excel_file.parse(sheet_name, usecols=numeric_cols, dtype=str)
    # 批量处理数值列:替换逗号为小数点后转浮点型
    for col in numeric_cols:
        # 如果存在点作为千位分隔符的情况,比如1.234,56,先加一步替换.str.replace(".", "")即可
        df[col] = df[col].str.replace(",", ".").astype(float)
    processed_data.append(df)

# 如需合并所有工作表数据直接绘图,执行以下拼接即可
merged_df = pd.concat(processed_data, ignore_index=True)

方案2:区域配置适配(适合固定本地环境)

如果你的Excel本身使用欧洲区域格式(默认逗号为小数分隔符),可以通过修改locale配置实现转换,兼容性弱于方案1,不同操作系统的locale命名存在差异:

import locale
import pandas as pd

# 示例为德语区域配置,Windows系统写"de_DE",Linux系统写"de_DE.utf-8"
locale.setlocale(locale.LC_NUMERIC, "de_DE")

# 读取后使用locale.atof方法转换字符串为数值
df = pd.read_excel("你的文件路径.xlsx", dtype=str)
df["数值列"] = df["数值列"].apply(locale.atof)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 21:18:00