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

使用Pandas读取CSV文件时分隔符(sep/delimiters)失效问题咨询

解决Pandas读取CSV时所有数据挤入单列的问题

我碰到过好几个和你一样的情况,用pd.read_csv()读取CSV后所有内容都堆在第一列,其他列全是NaN,大概率是CSV的格式有问题,导致Pandas没法正确识别列的边界。结合你给出的原始数据和代码,我整理了几个最可能的原因和解决办法:

最常见的原因:文本字段里的逗号没被引号包裹

如果你的推文内容里实际包含逗号(比如可能输入时把j & k写成了j, k),但整个text字段没被双引号括起来的话,Pandas会把这个逗号当成列分隔符,直接打乱列的划分,最后只能把所有内容塞进第一列。

解决办法:

  1. 手动修正CSV文件:把每个text字段用双引号包起来,格式变成这样:
    text,location,user_follower_count,user_verified
    "shameful a poor man from bihar is killed j amp k administration under central rule did not even arrange for his body to be flown",NA,NA,NA
    "being right about anything can be its own reward but you might get more for aquarius",NA,NA,NA
    "they don't want herd immunity they want a herd mentality",NA,NA,NA
    
  2. 读取时指定引号识别参数:如果不想修改文件,可以在read_csv里加上quotechar参数,告诉Pandas识别引号包裹的字段:
    raw_data = pd.read_csv(raw_tweet_data, sep=",", header='infer', quotechar='"')
    

另一种可能:整个数据行被错误引号包裹

如果你的CSV文件里每一行数据都被一对双引号完全括起来(比如整行是"shameful...,NA,NA,NA"),Pandas会把整个行当成单个字段处理,自然就全挤在text列里了。

解决办法:

读取时让Pandas忽略所有引号,需要先导入csv模块,然后用quoting参数:

import csv
raw_data = pd.read_csv(raw_tweet_data, sep=",", header='infer', quoting=csv.QUOTE_NONE)

隐藏坑:特殊字符或编码问题

有时候CSV文件里会有全角逗号、不可见的换行符这类特殊字符,或者编码不对,也会导致分隔符识别失败。

解决办法:

  1. 用记事本或VS Code打开CSV文件,检查有没有全角逗号(看起来比普通逗号宽),替换成半角逗号;
  2. 读取时指定编码,比如utf-8或latin-1:
    raw_data = pd.read_csv(raw_tweet_data, sep=",", header='infer', encoding='utf-8')
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 17:23:10