##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))