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

Python导入含逗号及双引号的CSV文件遇Unicode错误,求正确方法

解决CSV导入问题

1. 先搞定语法错误

你写的代码里quotechar='"'是HTML里的双引号转义写法,Python根本不认,直接换成quotechar='"'就能解决那个Unicode转义报错。

2. 正确导入并调整数据格式

如果用Pandas(毕竟你要的是DataFrame),可以这么写:

import pandas as pd

# 读取CSV,指定引号字符和分隔符,自动忽略引号内的逗号
df = pd.read_csv(
    '你的文件路径.csv',
    quotechar='"',
    delimiter=',',
    skipinitialspace=True
)

# 把share列里的逗号换成小数点,转成数值类型
df['share'] = df['share'].str.replace(',', '.').astype(float)

# 把liste列里的逗号换成空格
df['liste'] = df['liste'].str.replace(',', ' ')

要是用Python内置的csv模块再转成DataFrame,代码是这样:

import csv
import pandas as pd

data_rows = []
with open('你的文件路径.csv', 'r', encoding='utf-8') as file:
    csv_reader = csv.reader(
        file,
        quotechar='"',
        delimiter=',',
        skipinitialspace=True
    )
    # 读取表头
    headers = next(csv_reader)
    # 逐行处理数据
    for row in csv_reader:
        # 处理share列的逗号转小数点
        row[2] = row[2].replace(',', '.')
        # 处理liste列的逗号转空格
        row[3] = row[3].replace(',', ' ')
        data_rows.append(row)

# 转成DataFrame并调整数据类型
df = pd.DataFrame(data_rows, columns=headers)
df['votes'] = df['votes'].astype(int)
df['share'] = df['share'].astype(float)

关键参数说明

  • quotechar='"': 告诉解析器,双引号包裹的内容是一个完整字段,里面的逗号不会被当作分隔符拆分。
  • skipinitialspace=True: 自动忽略分隔符后面的空格(避免字段开头多空格)。

处理完之后就能得到你想要的DataFrame:

region  votes  share      liste
0       1   1453  45.16        ABC
1       2   5489  54.17  BCD DEF
2       3   5486  32.00        WSE

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 15:33:10