我正在尝试使用python pandas包读取Stata .dta文件,使用read_stata()函数,并且dta文件中包含许多中文字符。读入的文件都是混乱的代码,中文字符都只是乱码。有什么建议吗?
答案 0 :(得分:3)
您需要指定要使用的编解码器,默认是将您的文本解码为ISO-8859-1(Latin-1):
pandas.read_stata(filename, encoding=codec_to_use)
请参阅pandas.read_stata()
documenation:
编码:字符串,无或编码
用于解析文件的编码。请注意,Stata不支持unicode。None
默认为iso-8859-1。
对于中文,我猜所使用的编解码器是gb*
编解码器(gb18030
,gbk
,gb2312
)或UTF编解码器(UTF-8
,UTF-16
或UTF-32
)。尽管上面是熊猫的文件中的评论,我看到了Stata 14 supports Unicode now,并且他们使用了UTF-8。
另请参阅Standard Encodings page以获取受支持编解码器的概述。