1

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

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

错误信息是:

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

其他编码形式也不起作用,例如用于处理中文字符的gb18030gb2312 。如果我删除编码参数,DataFrame 将是所有垃圾值。

4

2 回答 2

2

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

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

结果print会显示正常的汉字,gb2312也可以制作。

于 2018-03-23T12:22:22.483 回答
0

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

于 2018-03-15T09:47:16.947 回答