ira*_*v94 3 python csv string multiple-columns pandas
我有一个 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
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用 pandas,因为我相信它是处理这种情况最广泛的库之一。有没有办法使用该函数创建仅考虑第一个逗号的 DataFrame read_csv?(不管后面的字符串有“”或“”或没有任何东西来隔离它)。
如果没有,最有效的替代方法是什么?
预先非常感谢您的帮助,
您可以通过为 的参数传递正则sep表达式来作弊read_csv。我使用的正则表达式是^([^,]+),抓住第一个逗号。我还使用该engine参数来避免 pandas 警告(因为默认的 C 引擎不支持正则表达式 sep),并使用该usecols参数来确保我们只获得我们想要的列(没有它,我们还会获得一个“未命名”列,老实说,我不知道为什么)。
您可以在read_csvdocs中获取有关每个参数的更多信息。
测试.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
Run Code Online (Sandbox Code Playgroud)
然后
print(pd.read_csv('test.csv', sep='^([^,]+),', engine='python', usecols=['Date', 'String']))
Run Code Online (Sandbox Code Playgroud)
输出
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
Run Code Online (Sandbox Code Playgroud)
如果 CSV 文件中有超过 2 个“实际”列,此方法将不起作用