7. read_excel()函数读取Excel文件

news2024/7/4 6:19:40

【目录】


【正文】

学习时间:30分钟。

1. pandas库读取数据

Pandas里的read_x方法可以读取外部数据。

x表示要读取的文件的格式。

  • 读取xlsx文件用read_excel方法。
  • 读取csv文件用read_csv方法。
  • 读取txt文件用read_table方法。

2. read_excel()函数读取Excel文件

read_excel()函数是pandas库中用于读取Excel文件的函数。

【语法】

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

这里用的语法是调用库的函数

库名.函数名( )

pandas是库名,这里通常用的是它的简写pd

read_excel是函数名,在Python中,读取通常都会用到跟read相关的函数。

excel表示要读取的文件类型。

【参数】

  • io:要读取的Excel文件的路径(字符串)或者可迭代对象,例如文件对象、Excel表格URL、Excel文件中的表名等。
  • sheet_name:要读取的Sheet的名称或索引(默认为0)。
  • header:指定列名所在的行数,默认为0,表示第一行。
  • names:自定义列名(列表形式),如果不指定,则默认使用Excel文件中的列名。
  • index_col:指定作为行索引的列,默认为None,表示不使用任何列作为索引。
  • usecols:指定要读取的列(列表形式),可以是列名或列索引。

3. 准备工作

注意使用read_excel()函数前需先安装pandas库。

在读取文件时首先要确定文件路径,即要读取的文件存在电脑中的哪个文件夹下。

以读取示例.xlsx为列。

我的示例.xlsx的绝对路径如下:

D:\安迪笔记\4.数据分析\7\示例.xlsx

我的示例.xlsx的相对路径如下:

4.数据分析\7\示例.xlsx

注意你的路径和我的不同哦!!!

示例.xlsx文件里有两个表单。

示例.xlsx文件的第1个sheet如下所示:

在这里插入图片描述

示例.xlsx文件的第2个sheet如下所示:

在这里插入图片描述

4. 路径前的r是什么

file = r"D:\安迪笔记\4.数据分析\7\示例.xlsx"

电脑中的文件路径默认使用\

Python中的转义字符通常以反斜杠\开头。

如果路径中有\,且\后有转义字符时,程序会默认为是转义字符而报错。

因此可以在路径前面加一个字符r,告知程序这是路径。

如果不加r,可以把路径里面的所有\转换成/

5. io参数 = 绝对路径

【代码示例】

# 导入pandas库并简写为pd
import pandas as pd

# 文件的绝对路径
file = r"D:\安迪笔记\4.数据分析\7\示例.xlsx"

# 调用函数:库名.函数名()
# pd是库名
# read_excel是函数名
# io参数=file,file是路径
df = pd.read_excel(file)

# 输出读取到的数据
print(df)

【终端输出】

   序号       学号  籍贯 性别
0   1  2023001  广东  男
1   2  2023002  河南  男
2   3  2023003  湖北  男
3   4  2023004  河南  男
4   5  2023005  河南  男
5   6  2023006  其他  男
6   7  2023007  湖北  女

输出的是示例.xlsx文件的中的第一个sheet学生里面的数据。

6. io = 相对路径

【代码示例】

# 导入pandas库并简写为pd
import pandas as pd

# 文件的相对路径
file = r"4.数据分析\7\示例.xlsx"

# 调用函数:库名.函数名()
# pd是库名
# read_excel是函数名
# io参数=file,file是路径
df = pd.read_excel(file)

# 输出读取到的数据
print(df)

【终端输出】

   序号       学号  籍贯 性别
0   1  2023001  广东  男
1   2  2023002  河南  男
2   3  2023003  湖北  男
3   4  2023004  河南  男
4   5  2023005  河南  男
5   6  2023006  其他  男
6   7  2023007  湖北  女

7. sheet_name:要读取的sheet的名称或索引

xlsx格式的文件会有多个sheet。

可以通过设定sheet_name参数指定要读取哪个sheet表。

sheet_name参数有3种情况:

  • 不指定sheet_name参数:默认读取第一个sheet文件。
  • sheet_name参数 = sheet名字
  • sheet_name参数 = sheet顺序

7.1 sheet_name参数 = 名字

【sheet_name =“学生”】

# 读取pandas库并简写为pd
import pandas as pd

# 文件的绝对路径
file = r"D:\安迪笔记\4.数据分析\7\示例.xlsx"

# sheet_name ="学生",读取学生sheet里的数据
df = pd.read_excel(file, sheet_name ="学生")

print(df)

【终端输出】

   序号       学号  籍贯 性别
0   1  2023001  广东  男
1   2  2023002  河南  男
2   3  2023003  湖北  男
3   4  2023004  河南  男
4   5  2023005  河南  男
5   6  2023006  其他  男
6   7  2023007  湖北  女

【sheet_name =“销售”】

# 读取pandas库并简写为pd
import pandas as pd

# 文件的绝对路径
file = r"D:\安迪笔记\4.数据分析\7\示例.xlsx"

# sheet_name ="销售",读取销售sheet里的数据
df = pd.read_excel(file, sheet_name ="销售")

print(df)

【终端输出】

   序号     日期  省份  订单量  单价  销售额
0   1  45170  广东    0  10    0
1   2  45171  河南    0  10    0
2   3  45172  湖北    1  10   30
3   4  45173  河南    0  10    0
4   5  45174  河南    0  10    0

7.2 sheet_name参数 = 顺序

注意顺序从0开始计数。

【sheet_name=0,读取第1个sheet】

# 读取pandas库并简写为pd
import pandas as pd

file = r"D:\安迪笔记\4.数据分析\7\示例.xlsx"

# sheet_name=0,读取第1个sheet
df = pd.read_excel(file, sheet_name =0 )

print(df)

【终端输出】

   序号       学号  籍贯 性别
0   1  2023001  广东  男
1   2  2023002  河南  男
2   3  2023003  湖北  男
3   4  2023004  河南  男
4   5  2023005  河南  男
5   6  2023006  其他  男
6   7  2023007  湖北  女

【sheet_name=1,读取第2个sheet】

# 读取pandas库并简写为pd
import pandas as pd

file = r"D:\安迪笔记\4.数据分析\7\示例.xlsx"

# sheet_name=1,读取第2个sheet
df = pd.read_excel(file, sheet_name =1 )

print(df)

【终端输出】

   序号     日期  省份  订单量  单价  销售额
0   1  45170  广东    0  10    0
1   2  45171  河南    0  10    0
2   3  45172  湖北    1  10   30
3   4  45173  河南    0  10    0
4   5  45174  河南    0  10    0

8. index_col参数指定行索引

【代码示例】

# 读取pandas库并简写为pd
import pandas as pd

file = r"D:\安迪笔记\4.数据分析\7\示例.xlsx"

print("**********默认行索引**********")
df = pd.read_excel(file)

print(df)

print("**********指定行索引为0**********")
df = pd.read_excel(file, index_col=0)
print(df)

print("**********指定行索引为1**********")
df = pd.read_excel(file, index_col=1)
print(df)

print("**********指定行索引为2**********")
df = pd.read_excel(file, index_col=2)
print(df)

print("**********指定行索引为3**********")
df = pd.read_excel(file, index_col=3)
print(df)

【终端输出】

**********默认行索引**********
   序号       学号  籍贯 性别
0   1  2023001  广东  男
1   2  2023002  河南  男
2   3  2023003  湖北  男
3   4  2023004  河南  男
4   5  2023005  河南  男
5   6  2023006  其他  男
6   7  2023007  湖北  女
**********指定行索引为0**********
         学号  籍贯 性别
序号                
1   2023001  广东  男
2   2023002  河南  男
3   2023003  湖北  男
4   2023004  河南  男
5   2023005  河南  男
6   2023006  其他  男
7   2023007  湖北  女
**********指定行索引为1**********
         序号  籍贯 性别
学号                
2023001   1  广东  男
2023002   2  河南  男
2023003   3  湖北  男
2023004   4  河南  男
2023005   5  河南  男
2023006   6  其他  男
2023007   7  湖北  女
**********指定行索引为2**********
    序号       学号 性别
籍贯                
广东   1  2023001  男
河南   2  2023002  男
湖北   3  2023003  男
河南   4  2023004  男
河南   5  2023005  男
其他   6  2023006  男
湖北   7  2023007  女
**********指定行索引为3**********
    序号       学号  籍贯
性别                 
男    1  2023001  广东
男    2  2023002  河南
男    3  2023003  湖北
男    4  2023004  河南
男    5  2023005  河南
男    6  2023006  其他
女    7  2023007  湖北

index_col参数指定使用哪一列作为行索引。

默认使用0 1 2 3作为行索引。

因为参数从0开始计数。

  • index_col=0时,即指定第1例序号作为行索引。
  • index_col=1时,即指定第2例学号作为行索引。
  • index_col=2时,即指定第3例籍贯作为行索引。
  • index_col=3时,即指定第4例性别作为行索引。

当指定行索引时,输出的结果少一列,默认行索引列消失。

9. header参数指定列索引

【代码示例】

# 读取pandas库并简写为pd
import pandas as pd

file = r"D:\安迪笔记\4.数据分析\7\示例.xlsx"

print("**********默认列索引**********")
df = pd.read_excel(file)

print(df)

print("**********指定列索引为0**********")
df = pd.read_excel(file,  header=0)
print(df)

print("**********指定列索引为1**********")
df = pd.read_excel(file, header=1)
print(df)

print("**********指定列索引为2**********")
df = pd.read_excel(file, header=2)
print(df)

print("**********指定列索引为3**********")
df = pd.read_excel(file, header=3)
print(df)

【终端输出】

**********默认列索引**********
   序号       学号  籍贯 性别
0   1  2023001  广东  男
1   2  2023002  河南  男
2   3  2023003  湖北  男
3   4  2023004  河南  男
4   5  2023005  河南  男
5   6  2023006  其他  男
6   7  2023007  湖北  女
**********指定列索引为0**********
   序号       学号  籍贯 性别
0   1  2023001  广东  男
1   2  2023002  河南  男
2   3  2023003  湖北  男
3   4  2023004  河南  男
4   5  2023005  河南  男
5   6  2023006  其他  男
6   7  2023007  湖北  女
**********指定列索引为1**********
   1  2023001  广东  男
0  2  2023002  河南  男
1  3  2023003  湖北  男
2  4  2023004  河南  男
3  5  2023005  河南  男
4  6  2023006  其他  男
5  7  2023007  湖北  女
**********指定列索引为2**********
   2  2023002  河南  男
0  3  2023003  湖北  男
1  4  2023004  河南  男
2  5  2023005  河南  男
3  6  2023006  其他  男
4  7  2023007  湖北  女
**********指定列索引为3**********
   3  2023003  湖北  男
0  4  2023004  河南  男
1  5  2023005  河南  男
2  6  2023006  其他  男
3  7  2023007  湖北  女

header参数指定使用哪一行作为列索引。

默认使用第1行作为列索引。

因为参数从0开始计数。

  • header=0时,即指定第1行序号 学号 籍贯 性别作为列索引。
  • header=1时,即指定第2行1 2023001 广东 男作为列索引。
  • header=2时,即指定第3行2 2023002 河南 男作为列索引。
  • header=3时,即指定第4行3 2023003 湖北 男作为列索引。

当设置列索引,输出的结果少一行,默认列索引消失。

10. usecols参数指定读取列

当表的列数太多,我们又不需要那么多列时,我们可以通过设定usecols参数来指定要读取的列。

usecols的参数为列表。

【代码示例】

# 读取pandas库并简写为pd
import pandas as pd

file = r"D:\安迪笔记\4.数据分析\7\示例.xlsx"

print("**********读取第1例数据**********")
df = pd.read_excel(file, usecols=[0])
print(df)

print("**********读取第3例数据**********")
df = pd.read_excel(file, usecols=[2])
print(df)

print("**********读取第1例、第3列数据**********")
df = pd.read_excel(file, usecols=[0, 2])
print(df)

print("**********读取第1例、第3列数据、第4列数据**********")
df = pd.read_excel(file, usecols=[0,2,3])
print(df)

【终端输出】

**********读取第1例数据**********
   序号
0   1
1   2
2   3
3   4
4   5
5   6
6   7
**********读取第3例数据**********
   籍贯
0  广东
1  河南
2  湖北
3  河南
4  河南
5  其他
6  湖北
**********读取第1例、第3列数据**********
   序号  籍贯
0   1  广东
1   2  河南
2   3  湖北
3   4  河南
4   5  河南
5   6  其他
6   7  湖北
**********读取第1例、第3列数据、第4列数据**********
   序号  籍贯 性别
0   1  广东  男
1   2  河南  男
2   3  湖北  男
3   4  河南  男
4   5  河南  男
5   6  其他  男
6   7  湖北  女

【代码解析】

usecols=[2]
usecols=[0,2,3]

usecols参数存储的对象时列表。

因为从0开始计数,当列表中只有一个数据2时,表示读取的是第3列。

当列表中有多个数据时,表示读取多列。

11. names参数自定义列名(列表形式)

names参数自定义列名(列表形式),如果不指定,则默认使用Excel文件中的列名。

【代码示例】

# 读取pandas库并简写为pd
import pandas as pd

file = r"D:\安迪笔记\4.数据分析\7\示例.xlsx"

# names参数指定 A B C D 为列名
df = pd.read_excel(file, names=["A","B","C","D"])
print(df)

【终端输出】

   A        B   C  D
0  1  2023001  广东  男
1  2  2023002  河南  男
2  3  2023003  湖北  男
3  4  2023004  河南  男
4  5  2023005  河南  男
5  6  2023006  其他  男
6  7  2023007  湖北  女

12. 总结

【代码总结】

# 导入pandas库并简写为pd
import pandas as pd

# 文件的绝对路径
file = r"D:\安迪笔记\4.数据分析\7\示例.xlsx"

# 5. 读取文件
df = pd.read_excel(file)

# 7.1 sheet_name ="学生",读取学生sheet里的数据
df = pd.read_excel(file, sheet_name ="学生")

# 7.2 sheet_name=0,读取第1个sheet里的数据
df = pd.read_excel(file, sheet_name =0 )

# 8. index_col=1,指定第2例`学号`作为行索引。
df = pd.read_excel(file, index_col=1)

# 9. header=2,指定第3行`2  2023002  河南  男`作为列索引
df = pd.read_excel(file, header=2)

# 10. usecols=[0,2,3]读取第1例、第3列数据、第4列数据
df = pd.read_excel(file, usecols=[0,2,3])

# 11. names参指定 A B C D 为列名
df = pd.read_excel(file, names=["A","B","C","D"])

# 输出读取到的数据
print(df)

【图片总结】

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/973120.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[译]这8个CSS小技巧,你知道吗?

前言 在网页设计和前端开发中,CSS属性是非常重要的一部分。掌握常用的CSS属性不仅可以使你的网页看起来更美观,还能提升用户体验,今天小编为大家介绍8个常见的CSS小技巧: 1.修改滚动条样式 下图是我们常见的滚动条,…

开发前期准备工作

开发前期准备工作 文章目录 开发前期准备工作0 代码规范0.1 强制0.2 推荐0.3 参考dao:跟数据库打交道service:业务层,人类思维解决controller:抽象化 0.4 注释规范0.5 日志规范0.6 专有名词0.7 控制层统一异常统一结构体控制层提示…

2023年8月CSDN客服月报|解决个3重大问题和8个次要问题,处理个用户需求及建议

听用户心声,解用户之需。hello,大家好,这里是《CSDN客诉报告》第23期,接下来就请大家一同回顾我们8月份解决的bug~ 一、重大问题 1、【主站】博客访问异常 反馈量:102 持续时间:7月31日15:4…

Xcode,swift:Error Domain=kCLErrorDomain Code=1 (null)问题解决

问题描述: iOS开发时,当使用用户的位置权限时,获取用户经纬度报错:Error DomainkCLErrorDomain Code1 "(null)",错误域kCLError域代码1“(null)” 解决方法: 打开模拟机的设置-通用-语言与地区 将地区设置为中国(如果你的开发位置在中国的话) 点击左上方Features,选择…

leetCode动态规划“不同路径II”

迷宫问题是比较经典的算法问题,一般可以用动态规划、回溯等方法进行解题,这道题目是我昨晚不同路径这道题趁热打铁继续做的,思路与原题差不多,只是有需要注意细节的地方,那么话不多说,直接上coding和解析&a…

[Linux]编写一个极简版的shell(版本1)

[Linux]编写一个极简版的shell-version1 文章目录 [Linux]编写一个极简版的shell-version1命令行提示符打印接收命令行参数将命令行参数进行解释执行用户命令完整代码 本文能够帮助Linux系统学习者通过代码的角度更好地理解命令行解释器的实现原理。 命令行提示符打印 Linux操…

将两个文件夹中重复的图象删除

将两个文件夹中重复的图象删除 需求分析解决方案 需求分析 文件夹one和two存在图象的重复,将two文件中中重复的文件夹删除 解决方案 # coding: utf-8 from PIL import Image, ImageDraw, ImageFont import os import shutil import cv2 as cv import numpy as np …

二分搜索树节点的插入(Java 实例代码)

目录 二分搜索树节点的插入 Java 实例代码 src/runoob/binary/BinarySearchTreeInsert.java 文件代码&#xff1a; 二分搜索树节点的插入 首先定义一个二分搜索树&#xff0c;Java 代码表示如下: public class BST<Key extends Comparable<Key>, Value> { …

第 3 章 栈和队列(链栈)

1. 背景说明 链栈是指用单链表实现的栈&#xff0c;其存储结构为链式存储&#xff0c;实现类似于队列的链式实现&#xff0c;不过在插入元素时链栈在头部插入&#xff0c;而 链式队列在尾部插入&#xff0c;本示例中实现为带头结点的链栈&#xff0c;即栈顶元素为栈指针的下一…

Qcon2023: 大模型时代的技术人成长(简)

我目前致力于操作系统相关的研发&#xff0c; 公司的目标是打造物联网时代的智能原生操作系统。如何实现操作系统的AI Native 呢&#xff1f;带着这样的疑问我参加了Qcon2023 北京站的大会。 与Qcon 2022 北京站不同的是&#xff0c; 身份变了&#xff0c; 上次是分享者&#x…

【校招VIP】前端JavaScript语言之跨域

考点介绍&#xff1a; 什么是跨域&#xff1f;浏览器从一个域名的网页去请求另一个域名的资源时&#xff0c;域名、端口、协议任一不同&#xff0c;都是跨域。跨域是前端校招的一个重要考点&#xff0c;在面试过程中经常遇到&#xff0c;需要着重掌握。本期分享的前端算法考点之…

电商API对接流程,简单讲解!

电商API接口对接流程一般包括以下几个步骤&#xff1a; 1. 确定需求&#xff1a;首先确定您的电商平台需要与哪些其他系统或服务进行对接&#xff0c;以及需要传递哪些数据。 2. 寻找合适的API&#xff1a;根据您的需求&#xff0c;在开放平台或者第三方API市场中选择适合的API…

文件上传漏洞学习小结

目录 一、漏洞简介 二、上传的原理或本质 2.1 文件上传的本质 2.2 文件上传的过程及代码演示 三、文件上传常见触发点 四、文件上传常见检测方式 4.1 前端js检测 4.2 content-type &#xff08;MIME&#xff09;检测 4.3 黑名单检测 4.4 文件头检测 4.5 .htaccess文件…

软件评测师之数的表示

目录 一、数的进制(1)十进制&#xff1a;D(2)二进制&#xff1a;B(3)十六进制&#xff1a;H(4)八进制&#xff1a;O/Q 二、其他进制转十进制(1)二进制转十进制(2)十六进制转十进制(3)八进制转十进制 三、二进制与十六进制/八进制进行转换四、考法 一、数的进制 (1)十进制&…

微波系统中散射参量S、阻抗参量Z及导纳参量Y之间的关系及MATLAB验证

微波系统中散射参量S、阻抗参量Z及导纳参量Y之间的关系及MATLAB验证 用HFSS设计了一微波元件&#xff0c;仿真出了其散射参量S、阻抗参量Z及导纳参量Y&#xff0c;用MATLAB验证他们之间的关系 HFSS设计螺旋线圈 用HFSS设计了一个螺旋线圈&#xff0c;如上图所示。 进行仿真&…

无涯教程-JavaScript - DAYS360函数

描述 DAYS360函数返回基于360天的年份(十二个月为30天)的两个日期之间的天数,该天数用于会计计算。 语法 DAYS360 (start_date,end_date,[method])争论 Argument描述Required/OptionalStart_dateThe two dates between which you want to know the number of days.Required…

ElasticSearch第三讲:ES详解 - Elastic Stack生态和场景方案

ElasticSearch第三讲&#xff1a;ES详解 - Elastic Stack生态和场景方案 本文是ElasticSearch第三讲&#xff0c;在了解ElaticSearch之后&#xff0c;我们还要了解Elastic背后的生态 即我们常说的ELK&#xff1b;与此同时&#xff0c;还会给你展示ElasticSearch的案例场景&…

Django框架中使用drf框架开发

一、drf框架特点&#xff1a; 全称 Django REST framework 两大部分&#xff1a;序列化/反序列化 和 增删改查序列化&#xff1a;把数据库数据提取出来变成python常用格式的过程反序列化&#xff1a;把数据写入到数据库的过程增加 &#xff1a; 校验请求数据 -> 执行反…

OpenWrt编译自己的应用程序

编译OpenWrt的应用程序可以参考OpenWrt内部其他应用程序的例程&#xff0c;来编写成自己的应用程序 一、OpenWrt源代码获取与编译 1.1、搭建环境 下载OpenWrt的官方源码&#xff1a; git clone https://github.com/openwrt/openwrt.git1.2、安装编译依赖项 sudo apt update…

2023年Tik Tok在印尼的市场分析,怎么开通海外娱乐公会?

2023年 印尼的TIKTOK用户 字节跳动广告资源发布的数据显示&#xff0c;到2023年初&#xff0c;TikTok在印度尼西亚有1.099亿18岁及以上的用户。 字节跳动的数据显示&#xff0c;2023年初&#xff0c;抖音广告在印尼18岁及以上的成年人中占56.8%。 与此同时&#xff0c;今年年…