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

Python处理含逗号列的小说文本CSV文件技术问询

解决Pandas处理含逗号的CSV字段问题

嘿,这个问题我碰到过好多次了——当CSV里的字段包含分隔符(比如你这里content列里的逗号)时,pandas默认的read_csv确实会搞砸列的识别,导致数据错位或者报错。别慌,给你几个靠谱的解决方案:

解决方案1:让Pandas识别引号包裹的字段

如果你的CSV文件里,包含逗号的content字段是用双引号(或单引号)包裹的(规范的CSV通常会这么做),直接在read_csv里指定quotechar参数就能解决:

import pandas as pd

# 假设字段用双引号包裹
df = pd.read_csv('your_file.csv', quotechar='"')
# 如果是单引号包裹,就改成quotechar="'"

这样Pandas就会把引号内的内容当成一个完整字段,不管里面有多少逗号,不会把它们当成列分隔符。

解决方案2:用Python内置CSV模块预处理

如果你的CSV是不规范的(比如包含逗号的字段没加引号),可以先用Python原生的csv模块读取,手动合并被拆分的content字段,再转成DataFrame:

import pandas as pd
import csv

# 定义CSV的字段名
fieldnames = ['book_id', 'title', 'content']

rows = []
with open('your_file.csv', 'r', encoding='utf-8') as f:
    # 用csv.reader读取,指定分隔符为逗号
    reader = csv.reader(f, delimiter=',')
    # 如果你的CSV有表头,先跳过表头:next(reader)
    
    for row in reader:
        # 逻辑:book_id是第1列,title是第2列,剩下的所有列合并成content
        book_id = row[0]
        title = row[1]
        content = ','.join(row[2:])
        rows.append({'book_id': book_id, 'title': title, 'content': content})

# 转成DataFrame
df = pd.DataFrame(rows)

这个方法适合完全不规范的CSV,手动控制每一列的归属,确保content字段完整还原。

解决方案3:确认并指定正确的分隔符

如果你的CSV其实不是用逗号分隔(比如误用了分号、制表符),那直接指定sep参数即可:

# 比如分隔符是分号
df = pd.read_csv('your_file.csv', sep=';')
# 如果是制表符,用sep='\t'

不过看你的示例数据,应该是逗号分隔的场景,这个方案可以作为排查方向。


内容的提问来源于stack exchange,提问作者add-semi-colons

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:49:25