Pandas如何读取带有额外逗号和无引号的CSV文件?

2024-05-14 04:03:59 发布

您现在位置:Python中文网/ 问答频道 /正文

数据:

from io import StringIO
import pandas as pd

s = '''ID,Level,QID,Text,ResponseID,responseText,date_key
375280046,S,D3M,Which is your favorite?,D5M0,option 1,2012-08-08 00:00:00
375280046,S,D3M,How often? (at home, at work, other),D3M0,Work,2010-03-31 00:00:00
375280046,M,A78,Do you prefer a, b, or c?,A78C,a,2010-03-31 00:00:00'''

df = pd.read_csv(StringIO(s))

收到错误:

^{pr2}$

很明显我收到的错误。数据包含文本,如How often? (at home, at work, other)Do you prefer a, b, or c?。在

如何将这种类型的数据读入pandas数据帧?在


Tags: 数据importyoupandashomedoathow
1条回答
网友
1楼 · 发布于 2024-05-14 04:03:59

当然,当我写这个问题的时候,我想出来了。当我忘记怎么做的时候,我会和我未来的自己分享,而不是删除它。在

显然,pandas default sep=','也可以是正则表达式。在

解决方案是将sep=r',(?!\s)'添加到read_csv中,如下所示:

df = pd.read_csv(StringIO(s), sep=r',(?!\s)')

(?!\s)部分是一个负lookahead,只匹配后面没有空格的逗号。在

结果:

^{pr2}$

相关问题 更多 >