Pandas中read_excel函数参数使用详解+实例代码

简介: Pandas中read_excel函数参数使用详解+实例代码

前言


使用Pandas进行数据预处理时需要了解Pandas的基础数据结构Series和DataFrame。若是还不清楚的可以再去看看我之前的三篇博客详细介绍这两种数据结构的处理方法:


一文速学-数据分析之Pandas数据结构和基本操作代码


DataFrame行列表查询操作详解+代码实战


DataFrame多表合并拼接函数concat、merge参数详解+代码操作展示


以上三篇均为基础知识,没有比较难的实战,比较容易学会。


首先说明一点,关于包含在异常值里面的空值和重复值均有两篇博客专门详细介绍了处理他们的方法:


一文速学-Pandas处理重复值操作各类方法详解+代码展示


一文速学-Pandas处理缺失值操作各类方法详解


该篇博客主要详解读取Excel表函数read的各种参数的用法


此篇博客基于Jupyter之上进行演示,本篇博客的愿景是希望我或者读者通过阅读这篇博客能够学会方法并能实际运用,而且能够记录到你的思想之中。希望读者看完能够提出错误或者看法,博主会长期维护博客做及时更新。纯分享,希望大家喜欢



一、数据展示


为方便演示函数效果这里创建一个excel文件,其中创建了两个表格:

sheet1:

5110859a94f34e29acb6cf7e2777893f.png


sheet2:

924e8db776274261bd9d32ad14707bc1.png


二、read_excel默认参数


1.def read_excel(io,
               sheet_name=0,
               header=0,
               names=None,
               index_col=None,
               parse_cols=None,
               usecols=None,
               squeeze=False,
               dtype=None,
               engine=None,
               converters=None,
               true_values=None,
               false_values=None,
               skiprows=None,
               nrows=None,
               na_values=None,
               keep_default_na=True,
               na_filter=True,
               verbose=False,
               parse_dates=False,
               date_parser=None,
               thousands=None,
               comment=None,
               skip_footer=0,
               skipfooter=0,
               convert_float=True,
               mangle_dupe_cols=True,
               **kwds)


1.io


io为文件类对象,一般作为读取文件的路径:


excel=pd.read_excel(r"D:\Python\pythonlearn\test1.xlsx")

35c59538e6ec4065b1c57d5858d83bb2.png

2.sheet_name


该参数为指定读取excel的表格名7862df88c2e341ee8b2c753552abc423.png

Sheet_name参数莫仍从零开始,也就是想读第二张表则将参数改为1即可:


excel=pd.read_excel(r"D:\Python\pythonlearn\test1.xlsx",sheet_name=1)

e9f384e5bc284af69e0658dd0e5e1974.png

也可以设定值为列表,则一次返回一个字典:


excel=pd.read_excel(r"D:\Python\pythonlearn\test1.xlsx",header=1)


605c2e3c5d5c45e8b349531e52a46e43.png


3.header


该参数为指定列表中从第几行作为列索引:


excel=pd.read_excel(r"D:\Python\pythonlearn\test1.xlsx",header=1)


15267347f65d4c95a1179cf6374d3e85.png


如果设定为1则以第二行的数据作为列索引的值。


4.names


此参数接收一个数组,将列名重定义赋值:


excel=pd.read_excel(r"D:\Python\pythonlearn\test1.xlsx",names=['value','old','1','2'])


61e19ec41e964a81a29f8adb82f58e4b.png


5.index_col


此参数为指定从第几列开始索引:

 

excel=pd.read_excel(r"D:\Python\pythonlearn\test1.xlsx",index_col=1)


01392e2dac914e6ab3fe8ef256805774.png

6.usecols


该参数为返回指定的列,usecols=[A,C]表示只选取A列和C列。usecols=[A,C:E]表示选择A列,C列、D列和E列;:

excel=pd.read_excel(r"D:\Python\pythonlearn\test1.xlsx",usecols="A,C")

f899358587604239a9294c728d9303b1.png


excel=pd.read_excel(r"D:\Python\pythonlearn\test1.xlsx",usecols="A,C:D")

7f53c6a9a83c4bc692e1edf40a46835e.png

也可以传入列表:


excel=pd.read_excel(r"D:\Python\pythonlearn\test1.xlsx",usecols=[0,2])



c4753fe3c1da4b6e83edec9a4406251f.png

excel=pd.read_excel(r"D:\Python\pythonlearn\test1.xlsx",usecols=['ID','vaule'])

844a1a65fad145ddac3156fad6757afd.png


7.squeeze


若处理excel仅仅只有一列时,此时设定为True将转换为Series


excel=pd.read_excel(r"D:\Python\pythonlearn\test1.xlsx",usecols=['ID'],squeeze=True)

8dbeed3e4f3841b7855ea471fec5cee2.png


8.dtype


指定读取列的数据类型,可接收字典:


excel=pd.read_excel(r"D:\Python\pythonlearn\test1.xlsx",dtype={"ID":str,"vaule":np.float64})


6d364353f97241a59f257f17db23b5ce.png


若指定了“converters”参数,则dtype函数失效。


9.engine


该参数为指定Excel处理引擎,一般Excel处理引擎为xlrd,openpyxl,odf:

excel=pd.read_excel(r"D:\Python\pythonlearn\test1.xlsx",engine='xlrd')


10.converters


指定列数据类型转换函数,包括了dtype的功能,也可以对某一列使用Lambda函数,进行某种运算:

excel=pd.read_excel(r"D:\Python\pythonlearn\test1.xlsx",converters={"ID":str,"vaule":np.float64})

3b757078f84f4be383ca4595dcd6c16d.png


excel=pd.read_excel(r"D:\Python\pythonlearn\test1.xlsx",dtype={"ID":str},converters={"name":lambda x:"沪"+x,"vaule":lambda x: x+1})

4facea23c68146bbb73c58d3f81bbd97.png

424b51ef34514fa19810eeeeaed9adfa.png

11.true_values,false_values


传输一个列表判断为true或是false:

excel=pd.read_excel(r"D:\Python\pythonlearn\test1.xlsx",sheet_name=1,true_values=['female'],false_values=['male'])

f903be3ed9204f379377a1485bfc6ad0.png


12.skiprows


此参数为跳过行操作:


excel=pd.read_excel(r"D:\Python\pythonlearn\test1.xlsx",skiprows=[1,3])

a82dd638d68c4ce3a05111a0aca5c1b4.png

仅取偶数行:


excel=pd.read_excel(r"D:\Python\pythonlearn\test1.xlsx",skiprows=lambda x:x%2==0)

f10ea6538e4c49ada150c27fdc2833c8.png


13.nrow


指定需要读取前多少行,通常用于较大的数据文件中。

excel=pd.read_excel(r"D:\Python\pythonlearn\test1.xlsx",nrows=3)


a691a12f924e42c19799085c4999f297.png

14.na_values


将指定的值或者传入中的列表中的值设置为NaN:


excel=pd.read_excel(r"D:\Python\pythonlearn\test1.xlsx",sheet_name=1,na_values='male')

047f48524ee449c9aff1d5890039d72b.png


15.keep_default_na


作用:处理数据是否包含默认的NaN值

依赖于na_values参数是否被传递,默认为True,即自动识别空值导入。


16.na_filter


作用:检测缺少的值标记。当数据中没有任何NA值时,na_filter设置为False可以提高处理速度,特别是处理大文件时。


17.verbose


作用:指示放置在非数字列中NA值的数目


18.parse_dates


作用:处理日期类数据

这个参数蛮有意思,这里我重新创建个表:


902405a3a92445c18a768edb7742572d.png

excel=pd.read_excel(r"D:\Python\pythonlearn\test1.xlsx",sheet_name=2,parse_dates={"日期":[0,1,2]})

946584e7431641d18328c3959dd35b8d.png

19.data_parser


作用:设置处理日期数据的函数,利用lambda函数,将某个字符串列,解析为日期格式;

excel=pd.read_excel(r"D:\Python\pythonlearn\test1.xlsx",sheet_name=3,parse_dates=[0],date_parser=lambda x:pd.to_datetime(x,format='%Y年%m月%d日'))

b475b067d07742009be058c09898db3c.png

20.mangle_dupe_cols


可以使用此是参数处理重复的列:

这里改动一下sheet2:

2e748e90ce9248d889ba443c7ada0c47.png

excel=pd.read_excel(r"D:\Python\pythonlearn\test1.xlsx",sheet_name=4,mangle_dupe_cols=False)


结果:

ValueError: Setting mangle_dupe_cols=False is not supported yet

现在还不支持这个函数貌似

目录
相关文章
|
3天前
|
数据挖掘 数据处理 索引
python常用pandas函数nlargest / nsmallest及其手动实现
python常用pandas函数nlargest / nsmallest及其手动实现
18 0
|
1月前
|
数据采集 存储 Web App开发
一键实现数据采集和存储:Python爬虫、Pandas和Excel的应用技巧
一键实现数据采集和存储:Python爬虫、Pandas和Excel的应用技巧
|
1月前
|
数据处理 数据格式 Python
python进行数据处理——pandas的drop函数
python进行数据处理——pandas的drop函数
14 3
|
2月前
|
Python
在Python中,pandas库的`get_dummies`函数
在Python中,pandas库的`get_dummies`函数
39 2
|
2月前
|
人工智能 程序员 数据处理
Pandas数据处理3、DataFrame去重函数drop_duplicates()详解
Pandas数据处理3、DataFrame去重函数drop_duplicates()详解
62 0
Pandas数据处理3、DataFrame去重函数drop_duplicates()详解
|
2月前
|
人工智能 程序员 数据处理
Pandas数据处理2、DataFrame的drop函数具体参数使用详情
Pandas数据处理2、DataFrame的drop函数具体参数使用详情
39 0
|
4天前
|
数据处理 Python
如何使用Python的Pandas库进行数据排序和排名
【4月更文挑战第22天】Pandas Python库提供数据排序和排名功能。使用`sort_values()`按列进行升序或降序排序,如`df.sort_values(by='A', ascending=False)`。`rank()`函数用于计算排名,如`df['A'].rank(ascending=False)`。多列操作可传入列名列表,如`df.sort_values(by=['A', 'B'], ascending=[True, False])`和分别对'A'、'B'列排名。
14 2
|
1月前
|
数据格式 Python
如何使用Python的Pandas库进行数据透视图(melt/cast)操作?
Pandas的`melt()`和`pivot()`函数用于数据透视。基本步骤:导入pandas,创建DataFrame,然后使用这两个函数转换数据格式。示例代码展示了如何通过`melt()`转为长格式,再用`pivot()`恢复为宽格式。输入数据是包含'Name'和'Age'列的DataFrame,最终结果经过转换后呈现出不同的布局。
40 6
|
1月前
|
数据处理 Python
如何使用Python的Pandas库进行数据排序和排名?
Pandas在Python中提供数据排序和排名功能。使用`sort_values()`进行排序,如`df.sort_values(by='A', ascending=False)`进行降序排序;用`rank()`进行排名,如`df['A'].rank(ascending=False)`进行降序排名。多列操作可传入列名列表,如`df.sort_values(by=['A', 'B'], ascending=[True, False])`。
25 6
|
1月前
|
索引 Python
如何使用Python的Pandas库进行数据合并和拼接?
【2月更文挑战第28天】【2月更文挑战第103篇】如何使用Python的Pandas库进行数据合并和拼接?