您可以通过在
read_csv
的
sep
参数中传递正则表达式来作弊。我使用的正则表达式是
^([^,]+),
,它捕获第一个逗号。我还使用了
engine
参数,以避免pandas警告(因为默认的C引擎不支持正则表达式分隔符),并使用
usecols
参数确保我们只获取想要的列(如果没有它,我们还会得到一个“未命名”列,我不确定为什么)。您可以在
read_csv
文档中获取有关每个参数的更多信息。
test.csv
Date,String
2010-12-31,'This, is, an example string'
2011-12-31,"This is an, example string"
2012-12-31,This is an example, string
那么
print(pd.read_csv('test.csv', sep='^([^,]+),', engine='python', usecols=['Date', 'String']))
输出
Date String
0 2010-12-31 'This, is, an example string'
1 2011-12-31 "This is an, example string"
2 2012-12-31 This is an example, string
如果 CSV 文件中有超过 2 列“实际”列,则此方法将无法正常工作。