Pandas解决stata数据中的中文乱码

##Pandas解决stata数据中的中文乱码

最近同学要求我处理一份格式为.dta的数据,写完第一个版本之后发现部分文件中含有中文字符,在输出最后的csv文件中出现乱码。在查阅资料后,改为以下写法。

import pandas as pd
import os

files = os.listdir(".")
for f in files:
    if f.endswith(".dta"):
        filename = f.split(".")[0]
        data = pd.read_stata(f)
        for c in data.columns:
            if isinstance(data[c][0],str):
                data[c] = data[c].str.encode('latin-1').str.decode('gbk')
        data.to_csv(filename+".csv",encoding='utf_8_sig') #  utf_8_sig是关键,否则导出的csv用编辑器打开虽然是中文,但是excel打开还是乱码
        print('[OK] %s'%(filename))

猜你喜欢

转载自www.cnblogs.com/chendengbo/p/8954179.html
今日推荐