Pandas.read_excel详解

news2025/6/17 14:28:07

文章目录

    • 基础知识
    • 语法
      • 参数详解-index_col
      • 参数详解-header
      • 参数详解-usecols
      • 参数详解-dtype
      • 其他参数
    • 多表读取
    • 顺带提一句如何用pandas写数据到excel

基础知识

pandas 可以读取多种的数据格式,针对excel来说,可以使用read_excel()读取数据,如下:

import pandas as pd
df=pd.read_excel('test_xls')
print(df.head())

在这里插入图片描述
但是,值得注意的是:pandas在读取excel文件的时候需要调用读取第三方库(简称 引擎)

举个不太恰当的例子,张三买车得到了一次砸金蛋的机会,他当然不能用手砸,于是他顺手抄起旁边的锤子就砸了一个金蛋。这个例子里面的张三相当于pandas,金蛋就是excel文件,锤子就是读取文件的引擎。

在pandas中支持四种excel的文件读取引擎,我们用的最多的是"xlrd"和"openpyxl",其中"xlrd"是用来读取".xls"文件的,而"openpyxl"是用来读取".xlsx"及其他07版以后的新格式

其实"xlrd"和"openpyxl"都是python的库,可以单独的安装使用。命令:pip install xlrd

语法

  • sheet_name:如果有多张表,这个参数可以用来指定要读取的表,如果不指定,但有多张表,那么就会读取活动的表(active worksheet)
  • dtype:如果需要指定列的数据类型,则需要用到这个参数。读取文件时每列都会有默认的推断数据类型,但有时推断的会有问题;比如员工的工号如果是纯数字的,就会被推断成int,这样那些0开头的工号就会读取的有问题,这时我们就需要强制将工号列定义为str类型
  • index_col:行索引所在列,详见下面的例子
  • header:列名所在的行,详见后面的例子
  • usecols:指定需要的列,默认所有的列都读取,如果指定其他的列就不读取

参数详解-index_col

在这里插入图片描述
在该代码中,df.head()用来读取数据的前5行,pandas会在读取数据后自动在数据前加一行索引,也就是在YM前面的一列,这个索引一般是用来定位数据的。默认情况下,index_col=None,也就是说默认会添加一列自增的行索引。

如果数据本身有索引列,可以指定第几列为索引,如索引在第一列那我们就写index_col=0,第二列就写index_col=1
在这里插入图片描述
**索引可以不唯一,也可以有多层索引(MultiIndex)如果有多层索引,那么index_col需要传入一个数组,**如,df=pd.read_excel('test.xls',index_col=[0,1,3])就是说把第一列,第二列,第四列都作为索引

参数详解-header

如果不指定的话默认自动谈价一行列索引,如果一个数据中出现两个列索引,可以使用header来告诉pandas列索引所在的位置,如header=[0,1]就是告诉pandas第一列和第二列都是列索引

参数详解-usecols

如果不想显示某一列,可以使用usecols参数。代码有三张写法

  1. 使用列字母
  2. 使用列的位置序号
  3. 使用列名称
    在这里插入图片描述
    在以上数据中,使用一下代码有相等的效果
df = pd.read_excel("pf.xlsx",usecols=["A,C:E"])
df = pd.read_excel("pf.xlsx",usecols=[1,3,4,5])
df = pd.read_excel("pf.xlsx",usecols=["YM,CJ2,CJ3,CJ4"])

参数详解-dtype

可以用来修改某一列读取的参数类型,一般在数据读取的时候,读到某一列全部是数据,会默认把该列的数据类型定义为int类型,但是,如果遇到数据是0开头的,就会出现问题,因此,可以使用dtype来定义某一列的数据类型为想要的类型,一般是把int类型定义为str类型读取。如一个学号的数据为001,如果不使用dtype,读取的时候,在终端上显示的就是1,如果使用dtype={"学号" : str }后,输出的结果为001

其他参数

  1. na_values:自定义的空值,比如说张三第一学期的语文考试因为某些原因没有靠,成绩那边填写的是“缺考”。那我们就可以设置na_values=[“缺考”],这样导入后张三第一学期的成绩就会自动被识别为pandas的默认空占位符NaN
  2. parse_dates:如果excel表里面的日期列填写的不太规范,可以使用这个参数,告诉pandas哪一列是日期,保证日期格式读取的准确性
  3. true_values:指定真值,比如true_values=[“是”],那么,数据中的”是“就会被识别为True
  4. false_values:指定假值,比如false_values=[“否”],那么,数据中的”否“就会被识别为False

多表读取

接下来让我们来看另一种情况,上面的例子中,Sheet1Sheet2放置在同一张表的,如果想要区分为两张表,一般方法是可以读两遍read_excel,搭配sheet_name=[表名]参数。

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches

df1=pd.read_excel('test.xls',sheet_name='Sheet1')
print(df1.head())

df2=pd.read_excel('test.xls',sheet_name='Sheet2')
print(df2.head())

在这里插入图片描述


顺带提一句如何用pandas写数据到excel

import pandas as pd


# pandas 存储数据到excel
def pd_toexcel(data,filename):
    dfData = { # 用字典设置DataFrame所需数据
        '序号':data[0],
        '项目':data[1],
        '数据':data[2]
    }
    df = pd.DataFrame(dfData) # 创建DataFrame
    df.to_excel(filename,index=False) # 存表,去除原始索引列(0,1,2...)



"""--------------数据用例---------------"""
orderIds=[1,2,3]
items=['A','B','C']
myData=[10,20,30]
testData=[orderIds,items,myData]

filename='write.xlsx'
pd_toexcel(testData,filename)


在这里插入图片描述

PS:这里需要用到openpyxl模块

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

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

相关文章

实现在SpringBoot项目中使用腾讯云发送短信

在一些项目中总会不可避免的要用到短信服务,比如发送验证码等,那么如何进行短信的发送呢,我们这就来捋一捋,我这里采用的是腾讯云的短信服务。其他的云服务也大致一样。 第一步、申请腾讯云的短信服务并配置基本信息 首先进入腾讯…

2023年Q1京东大家电销售数据分析(京东行业大盘销量查询)

2023年第一季度,大家电线上市场的涨势有点放缓,相较于去年的涨幅,今年有收敛不少。下面,我们以京东平台的数据作为线上市场表现的参考。 根据鲸参谋数据显示,今年Q1季度大家电在京东的累计销量超过1600万件&#xff0c…

FE_CSS 页面布局之盒子模型 边框 内外边距

1 盒子模型(Box Model)组成 所谓 盒子模型:就是把 HTML 页面中的布局元素看作是一个矩形的盒子,也就是一个盛装内容的容器。 CSS 盒子模型本质上是一个盒子,封装周围的 HTML 元素,它包括:边框、…

用户体验设计之记忆(Memory)

🔥人类记忆的基础 记忆是能够记住过去的经历,以及回忆和唤起它们去影响当下的能力 记忆是由encoding(把外界刺激进入大脑转换成可以记忆的格式)、storage(在大脑中开辟存储记忆的空间)、retrieval&#x…

C语言文件操作复习回顾(1)

关于流,内存数据读写铺垫的复习 打开一个文件 -> 内存里面就会创建一个对应关联的文件信息区 -> 文件信息区其实就是一个FILE类型的结构体 -> 各个结构体成员记录了该文件的种种信息 -> 结构体(文件信息区)由FILE* 结构体指针来维护 -> 有了指针&am…

Linux -- 基础IO

文章目录1. 基础认识2. 回顾C文件接口2.1 现象一2.2 现象二2.3 fprintf()函数回顾2.4 fnprintf()函数使用2.5 "a"模式3. 系统接口3.1 open()和close()3.2 write()3.3 read()3.4 C文件接口和系统接口关系3.5 文件描述符3.6 深度理解Linux下一切皆文件3.7 FILE是什么3.…

OpenAI的ChatGPT迭代速度超乎想象

OpenAI的ChatGPT迭代速度超乎想象,被谷歌聊天机器人Bard 嘲笑“家里不通网”后,OpenAI一个鲤鱼打挺甩出“实时联网”方案。 美西时间3月23日,OpenAI宣布推出ChatGPT Plugins(插件集),赋予ChatGPT实时更新、…

chatGPT文章生成插件-用chatGPT写文章接入网站

chatGPT文章生成插件 ChatGPT是一种强大的自然语言生成技术,可以用于生成文章、文本摘要、对话生成、语言翻译等多种应用场景。在实际应用中,可以使用一些插件来实现ChatGPT的文章生成功能,以下是一些可能有用的插件介绍: AI Wri…

【CSS】实现梯形

简单说一下背景,就是需要实现一个展开收起的按钮。 那我第一个想到的方法,可不就是border自己画嘛。 1、border边框 width: 150px; border-top: 50px solid red; // 梯形的高 border-right: 50px solid transparent; // 往右延伸 border-bottom: 50px …

75-网络二(网络分层模型)

网络二二.网络分层模型1.网络协议(1)什么是网络协议(2)常见的协议2.OSI的7层模型与tcp/ip协议族体系4层结构(1)数据链路层(2)网络层(3)传输层(4)应用层3.为什么要分层?三.网络应用程序的通信流程网络一见:网络一 二.网络分层模型 1.网络协议 (1)什么是网络协议 网络协议就…

Python 小型项目大全 76~81

七十六、井字棋 原文:http://inventwithpython.com/bigbookpython/project76.html 井字棋是一种在3 3网格上玩的经典纸笔游戏。玩家轮流放置 X 或 O 标记,试图连续获得三个。大多数井字棋都以平局告终,但如果你的对手不小心,你也…

Three.js教程:顶点位置数据解析渲染

推荐:将NSDT场景编辑器加入你3D工具链其他工具系列:NSDT简石数字孪生顶点位置数据解析渲染 如果你没有WebGL基础,可以先不用记忆每个的threejs 具体内容,有一个大致印象即可,学习本节课的重点是建立顶点的概念。如果你…

Reactor设计模式

一、Reactor设计模式 1、什么是Reactor设计模式? Reactor模式是高性能I/O设计中,常用的设计模式。其中心思想是将所有要处理的I/O事件注册到一个中心I/O多路复用器上,同时主线程阻塞在多路复用器上,一旦有I/O事件到来或是准备就绪…

C++ 继承:概念定义、对象的赋值转换、继承作用域及派生类的默认成员函数

目录 一. 继承的概念和定义 1.1 继承的概念 1.2 继承的定义格式 1.3 继承关系和访问限定符 二. 基类和派生类对象的之间的赋值转换 三. 继承体系中的作用域 四. 派生类的默认成员函数 4.1 构造函数 4.2 拷贝构造函数 4.3 赋值运算符重载函数 4.4 析构函数 4.5 取地…

linux服务器禁止ping命令,linux服务器禁ping如何解除

linux服务器禁止ping命令,linux服务器禁ping如何解除 我是艾西,在我们搭建网站或做某些程序时,不少人会问禁ping是什么意思,怎么操作的对于业务有哪些好处等,今天艾西一次给你们说清楚。 禁PING的意思是:不…

相对全面的四足机器人驱动规划MATLAB和Simulink实现方式(足端摆线规划,Hopf-CPG,Kimura-CPG)

许久没更新四足机器人相关的博客文章,由于去年一整年都在干各种各样的~活,终于把硕士毕业论文给写好,才有点时间更新自己的所学和感悟。步态规划和足端规划只是为了在运动学层面获取四足机器人各关节的期望角位移和速度信号,再由底…

力扣---两数相加(c语言版)

🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏: 🍔🍟🌯 c语言初阶 🔑个人信条: 🌵知行合一 🍉本篇简介:>:记录一个力扣写了好久的一个问题 金句分享: ✨在心里种花,人…

uniapp 实现可滑动顶部选项卡(菜单)

利用和实现可滑动顶部选项卡,实现的切换效果类似下图这种(顶部tab下方swiper):(代码具体效果只是实现可滑动顶部选项卡的功能,具体样式可自定义修改) 一、分步骤展示 构建顶部tab选项按钮步骤…

00后卷王的自述,我难道真的很卷?

前言 前段时间去面试了一个公司,成功拿到了offer,薪资也从12k涨到了18k,对于工作都还没两年的我来说,还是比较满意的,毕竟一些工作3、4年的可能还没我高。 我可能就是大家说的卷王,感觉自己年轻&#xff…

[论文阅读笔记22]Identity-Quantity Harmonic Multi-Object Tracking

这是一篇优化匹配策略的文章, 通过密度估计的辅助, 估计一个边界框内有多少目标, 从而恢复遮挡的轨迹. 发表在IEEE TIP 2022. 论文地址: https://ieeexplore.ieee.org/abstract/document/9725267/ 0. Abstract 通常的MOT算法在匹配阶段时, 都是通过线性指派问题求解, 即会计算…