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

Pandas 用汉字读取.dta文件的编码错误,pandas,encoding,dta,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。如果删除编码参数,数据帧将是所有垃圾值 查看pandas的源代码(版本0.22.0),rea

我正在尝试使用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。如果删除编码参数,数据帧将是所有垃圾值

查看pandas的源代码(版本0.22.0),read_stata支持的编码为('ascii'、'us ascii'、'latin-1'、'latin_1'、'iso-8859-1'、'iso8859-1'、'8859'、'cp819'、'latin'、'latin1'、'L1')。因此,您只能在此列表中进行选择

只需按默认编码读取原始数据,然后传输到预期编码!假设有乱码文本的列是
column1

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

打印
结果将显示正常汉字,
gb2312
也可以打印。

谢谢!但是我应该使用什么函数呢?对不起,我不知道,因为我没有stata。@熊猫0.23.4中的晓东
read_stata
将因
ValueError:未知编码而失败。仅支持拉丁语-1和ascii。