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

如何用Pandas读取表头含多分隔符、数据含逗号小数的CSV文件

解决CSV表头与数据分隔符不一致的问题

问题分析

你的CSV文件存在两个特殊情况:

  • 表头行同时混用;和,作为列分隔符
  • 数据行用;分隔列,小数用,作为小数点
    直接用pd.read_csv的默认参数无法同时适配这两种情况,导致所有内容被读入同一列。

解决方案

分两步处理:先修复表头的分隔符,再读取数据并绑定正确的列名。

1. 读取并处理表头行

先单独提取表头行,将其中的;和,统一替换为同一种分隔符,拆分得到标准列名列表:

import pandas as pd

# 打开文件读取表头行
with open("mypath\\test.csv", "r", encoding="utf-8") as f:
    # 跳过前3行无关内容
    for _ in range(3):
        next(f)
    # 读取第4行的表头
    header_line = f.readline().strip()

# 将表头里的;和,都替换为逗号,再拆分得到列名
column_names = header_line.replace(";", ",").split(",")

2. 读取数据并设置列名

读取数据时指定;为列分隔符,,为小数点,跳过前4行(3行注释+1行原表头),并将处理好的列名赋值给DataFrame:

df = pd.read_csv(
    "mypath\\test.csv",
    skiprows=4,
    delimiter=";",
    decimal=",",
    names=column_names
)

验证结果

执行后会得到你期望的5列数据:

column1  column2  column3  column4  column5
0    1.234    2.665    0.888    3.891    3.762
1    2.232    1.233    0.888    3.789    3.524

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 03:27:20