我正在尝试用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将是所有垃圾值。
答案 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')。所以你只能从这个列表中选择。