首页 > 解决方案 > 如何加载一列中的某些行包含额外的“,”分隔符的csv?获取“错误标记数据”

问题描述

我正在尝试使用 pandas 加载 csv(来自 Google Play 控制台的评论),其中列用“,”(逗号)分隔。然而,一些著作评论在文本中包含逗号,显然不应该被它们分开。在这些情况下,评论最初包含在引号中,如下所示:

App_rating,Date,Review,App_version
5,2020-03-01,Great app,3.0.0
2,2020-03-02,"Lame, previous version was better",4.0.0
4,2020-03-01,Good,3.0.1

我试过这段代码:

input_fd = open('reviews.csv', encoding='utf8', errors = 'backslashreplace')
pd.read_csv(input_fd, sep=',')

但出现如下错误: Error tokenizing data. C error: Expected 4 fields in line 2, saw 5

我不想使用error_bad_lines=False,因为我需要保留所有线条。

标签: pythonpandas

解决方案


您不需要open在文件中读取它pandas

只需使用:

df = pd.read_csv(filename)  ## filename is the complete path of your csv

此处无需指定分隔符。

我这样读你的csv:

cat t1.txt

App_rating,Date,Review,App_version
5,2020-03-01,Great app,3.0.0
2,2020-03-02,"Lame, previous version was better",4.0.0
4,2020-03-01,Good,3.0.1

In [1745]: df = pd.read_csv('t1.txt')                                                                                                                                                         

In [1746]: df                                                                                                                                                                                               
Out[1746]: 
   App_rating        Date                             Review App_version
0           5  2020-03-01                          Great app       3.0.0
1           2  2020-03-02  Lame, previous version was better       4.0.0
2           4  2020-03-01                               Good       3.0.1

推荐阅读