pandas包:dataframe的导入、导出及编码问题
1 与乱码相关的编码问题
一般默认设置下的excel无法顺利显示由utf-8编码的中文(能够显示以ANSI或是gb2312编码的中文文件),而dataframe导入默认编码为utf-8,故读写文件时需定义encoding为相应的编码方法。示例见下文。
2 dataframe的导入
数据量较大的表格文件,都建议以csv格式保存,txt也行吧(受原始格式限制的话)
- 由csv导入 (1) 如果该文件为utf-8编码,用下述代码即可读取(默认第一行为字段,若原csv无字段,则加入header=None;需自定义字段名,则names=[…])
import pandas as pd df = pd.read_csv(.../example.csv) #df = pd.read_csv(.../example.csv, header=None, names=[a,b,c])
(2) 如果该文件在我们的excel默认设置下是能够打开并顺利显示中文的,那么极有可能是ANSI编码,加入encoding定义
df = pd.read_csv(...example.csv, encoding=ANSI)
- 由txt导入 依旧用read_csv读取,加入sep定义,常见有逗号(’,’)、Tab(’ ’)、空格(’ )
df = pd.read_csv(.../example.csv, sep= )
3 dataframe的导出
同上,建议以csv格式保存
- 导出为csv 若不希望保留index,则加入index=False; 若导出的csv中文显示乱码,是因为excel默认编码不是utf8,可以在导出时加入encoding=‘ANSI’,也可以设置excel编码为utf8
df.to_csv(.../example.csv) #df.to_csv(.../example.csv, index=False, encoding=ANSI)