[英].CSV wrong characters: Changing encoding to UTF-8 pandas / python
我正在将以下 csv 文件读入 pandas:
但是有些字符是错误的,例如:
大肠杆菌应该是大肠杆菌
Não应该是Não
Weiss Táxi Aéreo应该是Weiss Táxi Aéreo
我试图转换它们:
import pandas as pd
df= pd.read_csv('./ex/sample.csv', sep=';', encoding='latin-1')
df.to_csv('new_file.csv', encoding='utf-8')
但是阅读 new_file.csv 会使单词出错。
如何将此文件中的每个字符转换为正确的字符? 这是某种编码问题,对吗?
只是不要提及任何编码,你会没事的
import pandas as pd
df= pd.read_csv('./ex/sample.csv', sep=';',)
df.to_csv('new_file.csv')
您有一个损坏的文件。 它实际上是在 UTF-8 中编码的,但是在一个坏记录(下)之后,所有行都是;;;;;;;;;;;;;;;;;;;;;;;;;;
. 注意encoding_errors='replace'
参数需要 pandas 1.3.0 或更高版本:
>>> import pandas as pd
>>> df = pd.read_csv('sample.csv',encoding='utf8',sep=';',encoding_errors='replace')
sys:1: DtypeWarning: Columns (1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,39,
41,43,44,45,54,55,57) have mixed types.Specify dtype option on import or set low_memory=False.
>>> df
codigo_reporte status classificacao_ocorrencia ... numeroMotor numeroHelice outraAnvParte
0 251.0 Aprovar Incidente ... NaN NaN NaN
1 675.0 Aprovar Incidente ... 1 NaN NaN
2 247.0 Aprovar Incidente ... NaN NaN NaN
3 248.0 Aprovar Incidente ... NaN NaN NaN
4 249.0 Aprovar Incidente ... NaN NaN NaN
... ... ... ... ... ... ... ...
63775 NaN NaN NaN ... NaN NaN NaN
63776 NaN NaN NaN ... NaN NaN NaN
63777 NaN NaN NaN ... NaN NaN NaN
63778 NaN NaN NaN ... NaN NaN NaN
63779 NaN NaN NaN ... NaN NaN NaN
[63780 rows x 58 columns]
>>> df[:105]
codigo_reporte status classificacao_ocorrencia ... numeroMotor numeroHelice outraAnvParte
0 251.0 Aprovar Incidente ... NaN NaN NaN
1 675.0 Aprovar Incidente ... 1 NaN NaN
2 247.0 Aprovar Incidente ... NaN NaN NaN
3 248.0 Aprovar Incidente ... NaN NaN NaN
4 249.0 Aprovar Incidente ... NaN NaN NaN
.. ... ... ... ... ... ... ...
100 924.0 Aprovar Incidente ... 1 NaN NaN
101 2923.0 Aprovar Incidente ... NaN NaN N�?O INFORMADO
102 NaN NaN NaN ... NaN NaN NaN
103 NaN NaN NaN ... NaN NaN NaN
104 NaN NaN NaN ... NaN NaN NaN
[105 rows x 58 columns]
请注意索引 101 的最后一列中的错误数据。这是评论中提到的UnicodeDecodeError
的来源。 之后,所有列都是Nan
,原始文件只是带有分号的空字段。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.