首页 > pandas 阅读数:47

pandas Excel文件的读写

Excel 是微软公司办公软件 Microsoft Office 的组件之一。使用 Excel 可以进行各种数据处理和统计分析,因而被广泛应用于管理、统计财经、金融等众多领域。

Microsoft Office Excel 软件有不同的版本,Microsoft Office Excel 2007 之前的版本的文件扩展名为 .xls,而 Microsoft Office Excel 2007 及其以后版本的文件扩展名为 .xlsx。

Excel 文件读取

pandas 提供了 read_excel() 函数来读取 Excel 文件,其函数的语法格式如下:

pandas.read_excel(io, sheet_name=0, header=0, index_col=None, names=None, dtype=None)

函数中的参数说明如下:
  • io:接收 string,表示文件名和路径;
  • sheet_name:接收 string、int,表示 Excel表 内数据的分表位置,默认为 0;
  • header:接收 int 或 sequence,表示将某行数据作为列名,取值为 int 时代表将该列作为列名,取值为 sequence 时则代表多重列索引,默认为 infer,表示自动识别;
  • names:接收 array,表示列名,默认为 None;
  • index_col:接收 int、sequence 或 False,表示索引列的位置。取值为 sequence 代表多重索引,默认为 None;
  • dtype:接收 dict,代表写入的数据类型(列名为 key,数据格式为 values),默认为 None。

注意:在执行 pandas 读取 Excel 的操作时,需要安装 xlrd 库,并且在当前代码中导入 xlrd 库。安装 xlrd 库的方法为:进入 cmd 状态,输入“pip install xlrd”命令即可。

【例 1】将员工月工资收入信息 salary.csv 文件打开,另存为 salary.xls 文件,然后将 salary.xls 文件中的数据读取为 DataFrame 对象。

示例代码 test1.py 如下。
# -*- coding: utf-8 -*-
import pandas as pd
import xlrd

print('数据文件保存在d盘的data目录下')
df = pd.read_excel('d:\data\salary.xls',sheet_name='salary')
print('输出df:','\n',df)

Excel 文件存储

将 DataFrame 数据保存为 Excel 文件,可使用 to_excel() 函数,函数的语法格式如下:

DataFrame.to_excel(excel_writer=None, sheet_name='None', na_rep='', header=True,
                                 index=True, index_label=None, mode='w', encoding=None)

函数中的参数说明如下:
  • excel_writer:接收 string,表示保存的文件名和路径;
  • sheet_name:接收 string,表示保存到 Excel 表内数据的分表名称,默认为 None;
  • na_rep:接收 string,表示缺失值,默认为"";
  • header:接收 boolean,表示是否将列名写出,默认为 True;
  • index:接收 boolean,表示是否将行名(索引)写出,默认为 True;
  • index_label:接收 sequence,表示索引名,默认为 None;
  • mode:接收特定的 string,表示数据写入的模式,默认为“w”;
  • encoding:接收特定的 string,表示存储文件的编码格式。

注意:在执行 pandas 写入 Excel 的操作时,需要安装 xlwt 库,并且在当前代码中导入 xlwt 库。安装 xlwt 库方法为:进入 cmd 状态,输入“pip install xlwt”命令即可。

【例 2 】以【例 1 】读取的员工月工资收入信息为例,在读取 salary.xls 文件后,在 DataFrame 对象中增加一个员工工资收入信息为(李丽,女,25,3000),然后将增加后的数据重新存储到 salaryadd.xls 文件中。

示例代码修改后的 test2.py 如下。
# -*- coding: utf-8 -*-
import pandas as pd
import xlrd
import xlwt
print('数据文件保存在d盘的data目录下')
df = pd.read_excel('d:\data\salary.xls',sheet_name='salary
print('输出df:','\n',df)
df.loc['add_row'] = ['李丽','女',25,3000]
print('输出df:','\n',df)
df.to_excel('D:\data\salaryadd.xls',encoding='GBK')
代码运行后,可到 data 目录下查看是否有 salaryadd.xls 文件。