熊猫read_csv仅第一个逗号

时间:2019-02-03 15:24:43

标签: python string pandas csv multiple-columns

我有一个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

我正在尝试使用熊猫,因为我认为它是处理这种情况的最广泛的图书馆之一。有没有一种使用read_csv函数创建仅考虑第一个逗号的DataFrame的方法? (不管后面的字符串带有“”或“”,还是没有任何隔离的字符串)。

否则,最有效的替代方法是什么?

非常感谢您的帮助,

1 个答案:

答案 0 :(得分:2)

您可以通过传递email(On User table) name(On Project table) first@email.com Project X first@email.com Project Y second@email Project Y 的{​​{1}}参数的正则表达式来作弊。我使用的正则表达式是User.query().raw(SELECT "user".email, project.name FROM "user" JOIN userprojects ON userprojects.user_id = "user".id JOIN project ON project.id = userprojects.project_id) ,它捕获了第一个逗号。我还使用了sep参数来避免发出熊猫警告(因为默认的C引擎不支持正则表达式sep)和read_csv参数来确保我们仅获得想要的列(不它也会得到一个“未命名”列,我不确定为什么要诚实。

您可以在read_csv docs中获得有关每个参数的更多信息。

test.csv

^([^,]+),

然后

engine

输出

usecols

如果您在CSV文件中有超过2个“实际”列,则此方法将无效