首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >python pandas read_csv quotechar不起作用

python pandas read_csv quotechar不起作用
EN

Stack Overflow用户
提问于 2016-05-06 22:26:03
回答 2查看 20.6K关注 0票数 7

我读过thisthisthis的帖子,但是我不知道为什么quotechar不能在pd.read_csv() (Python3,pandas 0.18.0和0.18.1)上工作。我怎么能读到这样的数据帧:

代码语言:javascript
运行
复制
"column1","column2", "column3", "column4", "column5", "column6"
"AM", 7, "1", "SD", "SD", "CR"
"AM", 8, "1,2 ,3", "PR, SD,SD", "PR ; , SD,SD", "PR , ,, SD ,SD"
"AM", 1, "2", "SD", "SD", "SD"

我希望得到以下结果:

代码语言:javascript
运行
复制
Out[116]: 
  column1  column2 column3    column4       column5        column6
0      AM        7       1         SD            SD             CR
1      AM        8  1,2 ,3  PR, SD,SD  PR ; , SD,SD  PR , ,, SD,SD
2      AM        1       2         SD            SD             SD

谢谢你!!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-06 23:38:20

read_csv()中分隔符的Pandas doc

长度大于1个字符且不同于“\s+”的python分隔符将被解释为正则表达式,将强制使用

解析引擎,并将忽略数据中的引号。

尝试使用此命令(默认情况下sep设置为逗号):

代码语言:javascript
运行
复制
pd.read_csv(file, skipinitialspace = True, quotechar = '"')
票数 18
EN

Stack Overflow用户

发布于 2018-09-18 23:39:33

另一种解决方案是使用适当的正则表达式,而不是简单的\s+。我们需要查找不在引号内的逗号(,):

代码语言:javascript
运行
复制
pd.read_csv(file, 
            sep=', (?=(?:"[^"]*?(?: [^"]*)*))|, (?=[^",]+(?:,|$))',
            engine='python')

该表达式取自here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37074914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档