我有一个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的方法? (不管后面的字符串带有“”或“”,还是没有任何隔离的字符串)。
否则,最有效的替代方法是什么?
非常感谢您的帮助,
答案 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个“实际”列,则此方法将无效