读取Excel文件数据

Excel文件是常见的存储数据的方式之一。使用pandas包提供的函数,可以快速将Excel文件中的数据导入到内存,并以DataFrame数据结构保存。[大谦Excel,dqexcel点com]

读取全部数据

【问题描述】

利用Python pandas包提供的函数,通过编程读取指定路径中文件的全部数据。

【示例2-1】

要导入的Excel文件的完整路径为“D:/Samples/ch02/01 读取Excel文件数据/单品电商数据.xlsx”。该文件打开后如图2-1所示,是很多商品的电商销售数据。现在要求用pandas全部导入该数据。

Document Image

图2-1 单品电商数据

  • ChatGPT提示词模板

新建ChatGPT会话,在提问文本框中输入下面的提示词:

prompt
你是pandas专家,文件路径为:D:/Samples/ch02/01 读取Excel文件数据/单品电商数据.xlsx。该Excel文件的第一个工作表中A-Z列为给定数据。用pandas导入Excel文件的数据,引擎为"openpyxl"。输出数据的形状、行数和列数。添加代码注释。
  • ChatGPT提示词模板说明

导入的Excel文件扩展名为”.xlsx”,所以提示词模板中需要指定引擎为”openpyxl”;如果扩展名为”.xls”,指定引擎为”xlrd”。对应这两种情况,要分别安装OpenPyXL包或xlrd包。这两个包的安装请参见1.3节的介绍。

  • 代码

根据提示词得到类似下面的代码:

code.python
import pandas as pd
# 读取Excel文件并指定引擎为openpyxl
df = pd.read_excel(r"D:/Samples/ch02/01 读取Excel文件数据/单品电商数据.xlsx", engine="openpyxl")
# 输出数据的形状、行数和列数
print("数据的形状为:", df.shape)
print("数据的行数为:", len(df))
print("数据的列数为:", len(df.columns))
  • 使用代码

打开Python IDLE,新建一个脚本文件,将上面生成的代码复制进去,保存到D:/Samples/1.py。运行脚本,在IDLE Shell窗口输出导入数据的形状、行数和列数。现在数据已经导入到df里面,可以进行后续的整理和分析了。

code.python
>>> == RESTART: D:/Samples/1.py =
数据的形状为: (327, 26)
数据的行数为: 327
数据的列数为: 26

【知识点扩展】

pandas使用read_excel函数导入Excel数据,函数常用参数的说明如表2-1所示。使用这些参数,可以对导入过程和导入内容进行更多的控制。

表2-1 read_excel函数的主要参数

参 数 说 明
io Excel文件的路径和名称
sheet_name 读取数据的工作表的名称,可以指定名称,也可以指定索引号,不指定时读取第1个工作表
header 指定用哪行数据作为索引行,如果是多层索引,用多行的行号组成列表进行指定
names 用列表指定列的列索引标签
index_col 指定用哪列数据作为索引列,如果是多层索引,用多列的列号或名称组成列表进行指定
usecols 如果只需要导入原始数据中的部分列数据,使用该参数用列表进行指定
dtype 用字典指定特定列的数据类型,如{"A":np.float64 }指定A列的数据类型为64位浮点型
nrows 指定需要读取的行数
skiprows 指定读入时忽略前面多少行
skip_footer 指定读入时忽略后面多少行
engine 执行数据导入的引擎,如"xlrd", "openpyxl"等

读取文件中的部分数据

【问题描述】

导入Excel数据时,只导入文件中的部分数据。比如,只导入其中的m列n行数据。

【示例2-2】

使用示例2-1的数据,使用pandas导入数据时,只导入前6行前6列数据。

  • ChatGPT提示词模板
  • 新建ChatGPT会话,在提问文本框中输入下面的提示词:
prompt
你是pandas专家,文件路径为:D:/Samples/ch02/01 读取Excel文件数据/单品电商数据.xlsx。该Excel文件的第一个工作表中A-Z列为给定数据。用pandas导入Excel文件的数据,导入前6行,前6列数据,引擎为"openpyxl"。输出数据。添加代码注释。
  • ChatGPT提示词模板说明

明确指定导入数据的范围,可以避免导入工作表中数据区域底部的空行或右侧的空列。如果导入空行,空行中单元格的值视为缺失值,不进行处理可能会引起计算错误。

  • 代码
  • 根据提示词得到类似下面的代码:
code.python
import pandas as pd
# 读取Excel文件
file_path = 'D:/Samples/ch02/01 读取Excel文件数据/单品电商数据.xlsx'
sheet_name = 'Sheet1'  # 工作表名
df = pd.read_excel(file_path, sheet_name=sheet_name, engine='openpyxl', nrows=6, usecols=range(0, 6))
# nrows参数表示读取前n行数据,usecols参数表示读取前6列数据
print(df)
  • 使用代码

打开Python IDLE,新建一个脚本文件,将上面生成的代码复制进去,保存到D:/Samples/1.py。运行脚本,在IDLE Shell窗口输出导入的数据。注意,默认时Excel文件中的第一行数据是作为索引行导入的,不算在导入的行数中。

code.python
>>> == RESTART: D:/Samples/1.py =
   商品id  周数据        日期  商品访客数  商品微详情访客数  商品浏览量
0     1   15 2021-04-08    355         1    965
1     2   15 2021-04-07    439         2   1076
2     3   15 2021-04-06    425         3    970
3     4   15 2021-04-05    272         4    821
4     5   15 2021-04-04    304         2    802
5     6   14 2021-04-03    268         3    748