没有可从文件解析的列(EmptyDataError:)

时间:2019-11-16 17:12:17

标签: python pandas csv text

我有一个类似于以下文件的文本文件:

289222
image_name  category_label
img/Sheer_Pleated-Front_Blouse/img_00000001.jpg                        3
img/Sheer_Pleated-Front_Blouse/img_00000002.jpg                        3
img/Sheer_Pleated-Front_Blouse/img_00000003.jpg                        3
img/Sheer_Pleated-Front_Blouse/img_00000004.jpg                        3
img/Sheer_Pleated-Front_Blouse/img_00000005.jpg                        3
img/Sheer_Pleated-Front_Blouse/img_00000006.jpg                        3
img/Sheer_Pleated-Front_Blouse/img_00000007.jpg                        3

使用下面的代码行,我可以毫无问题地读取数据!

df = pd.read_csv(file_name,skiprows=1, sep='\s+')

但是将以下代码用于以下文本文件时,则会出现此错误

EmptyDataError: No columns to parse from file

289222
image_name  x_1  y_1  x_2  y_2
img/Sheer_Pleated-Front_Blouse/img_00000001.jpg                        072 079 232 273
img/Sheer_Pleated-Front_Blouse/img_00000002.jpg                        067 059 155 161
img/Sheer_Pleated-Front_Blouse/img_00000003.jpg                        065 065 156 200
img/Sheer_Pleated-Front_Blouse/img_00000004.jpg                        051 062 167 182
img/Sheer_Pleated-Front_Blouse/img_00000005.jpg                        046 088 166 262
img/Sheer_Pleated-Front_Blouse/img_00000006.jpg                        047 067 211 241

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,因为它可能对其他人有用。解决方法如下:

使用记事本或任何其他文本编辑器,我们可以简单地将长标签空间替换为一个标签空间。然后,文件将是这样的;

289222
image_name  x_1  y_1  x_2  y_2
img/Sheer_Pleated-Front_Blouse/img_00000001.jpg 072 079 232 273
img/Sheer_Pleated-Front_Blouse/img_00000002.jpg 067 059 155 161
img/Sheer_Pleated-Front_Blouse/img_00000003.jpg 065 065 156 200
img/Sheer_Pleated-Front_Blouse/img_00000004.jpg 051 062 167 182
img/Sheer_Pleated-Front_Blouse/img_00000005.jpg 046 088 166 262

我们可以使用下面的代码行来读取它。

df = pd.read_csv(filename,
                      skiprows=1,
                     delim_whitespace=True)

希望这对其他人有用。 任何其他解决方案将不胜感激!