【发布时间】:2020-10-13 13:36:14
【问题描述】:
我有一个 iso-8859-1 格式的 csv 文件要导入到 pandas 数据框。
read_csv 函数非常适合。
但是 csv 使用不可破坏的空间作为千位分隔符,我似乎无法删除它。
read_csv 函数中有数千个属性,但无论我放在那里,牢不可破的空格仍然存在。
我尝试了以下方法,结果都一样:
data_sheet = pd.read_csv(path_to_csv, encoding="iso-8859-1", thousands=' ')
data_sheet = pd.read_csv(path_to_csv, encoding="iso-8859-1", thousands=chr(160'))
data_sheet = pd.read_csv(path_to_csv, encoding="iso-8859-1", thousands=u'\xa0')
data_sheet = pd.read_csv(path_to_csv, encoding="iso-8859-1", thousands='\xa0')
data_sheet = pd.read_csv(path_to_csv, encoding="iso-8859-1", thousands=unicodedata.lookup('NO-BREAK SPACE'))
由于它无法解析它,pandas 将其视为字符串并在我尝试转换时返回以下错误
ValueError: could not convert string to float: '1\xa0279,92'
【问题讨论】:
-
能否显示包含
'1\xa0279,92'的原始数据行?'1\xa0279,92'中的逗号是 CSV 文件的小数点还是逗号分隔符? -
小数点是',',字段分隔符是';'。为了清楚起见,我从帖子中删除了这些参数。完整的命令如下。 data_sheet = pd.read_csv(temp_file, header=25, encoding="iso-8859-1", sep=';', decimal=',',数千=' ')
-
这里是一个完整行的例子。有 175 列,所以它太长了,但这里有一部分有问题的字段:0,11;1 279,92;1 324,21;1 302,14;10,65;2 707,77;2 951,71;2 829,40
-
好的。您可以编辑您的帖子以包含信息。