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)
经验分享 程序员 微信小程序 职场和发展