读取.dta汉字文件的编码错误

时间:2018-03-14 16:20:09

标签: pandas encoding dta

我正在尝试用pandas读取.dta文件:

import pandas as pd
my_data = pd.read_stata('filename', encoding='utf-8')

错误信息是:

ValueError: Unknown encoding. Only latin-1 and ascii supported.

其他编码形式也无效,例如 gb18030 gb2312 用于处理Chineses字符。如果我删除编码参数,DataFrame将是所有垃圾值。

2 个答案:

答案 0 :(得分:1)

只需通过默认编码读取原始数据,然后转换为预期的编码!假设具有乱码文本的列为column1

import pandas as pd
dta = pd.read_stata('filename.dta')
print(dta['column1'][0].encode('latin-1').decode('gb18030'))

print结果会显示正常的中文字符,gb2312也可以显示。

答案 1 :(得分:0)

查看pandas的源代码(版本0.22.0),read_stata支持的编码是('ascii','us-ascii','latin-1','latin_1','iso-8859-1 ','iso8859-1','8859','cp819','拉丁','拉丁1','L1')。所以你只能从这个列表中选择。