【Python】pd.read_excel应用

2023-11-17

第一次运行必须带上定义:import pandas as pd,故意报错展现

pd.read_excel(1)

read_excel(io, sheet_name, header, names, index_col, parse_cols, usecols, squeeze, dtype, engine, converters, true_values, false_values, skiprows, nrows, na_values, keep_default_na, verbose, parse_dates, date_parser, thousands, comment, skip_footer, skipfooter, convert_float, mangle_dupe_cols, **kwds)

这函数有**kwds,函数在调用时,可以有任意数量和种类的命名参数,或者称关键字参数。这个就是决定了,pd.read_excel除了第一个路径外,后面参数顺序随便可换;

这个函数有效参数一共有26个,下文开始逐个描述,其中有3个问题,持续思考中~

Squeeze单列从SeriesDataFrame直观体现~

Thousands=","针对文本的差异如何直观体现~

mangle_dupe_cols=False的报错

整体初始模式:

read_excel(io,sheet_name=0,header=0,names=None,index_col=None,parse_cols=None,Nrows=None,usecols=None,skiprows=0,skipfooter=0,Squeeze=False,Dtype=None,Engine=None,Converters=None,true_values=None,false_values=None,na_values=None,keep_default_na=False,Verbose=False,parse_dates=False,date_parser=None,thousands=None,Comment=None,convert_float=True,mangle_dupe_cols=True)

注意:目前python中,skipfooter和skip_footer不能共存,所以上面只有25个参数。

1、io :excel路径

默认就是C:\Users\XXX    XXX是用户名:pd.read_excel("test1.xlsx")

  

2、sheet_name:默认是sheet_name=0;          也可以使用sheetname

1)sheetname=’sheet2’ 返回指定名字的表;2)返回多表使用sheet_name=[0,1,2] 代表返回第几张,0默认第一张,0,1,2代表返回第一张、第二张、第三张;3)若sheet_name=None是返回全表。

3、header :指定作为列名的行,默认header=0,即取第一行,数据为默认从这一行下面开始读取;若数据想不含列名,则设定header=None;

案例1:pd.read_excel("test2.xlsx",header=1)

案例2:pd.read_excel("test2.xlsx",header=None)

4、names要使用的列名列表,默认names=None;匹配header进行使用,会覆盖原因的表头文字。指定的名字出现重复的话,会出现.1,.2

案例1:pd.read_excel("test2.xlsx",header=0,names='54321')

案例2:pd.read_excel("test2.xlsx",header=0,names='54333')

 

5、index_col指定列为索引列,默认index_col=None,index_col=0,选择第一列为索引

案例:pd.read_excel("test2.xlsx",index_col=0)

6、parse_cols,默认parse_cols=None,相关于usecols,显示多少列,None是显示全部列,parse_cols=1,显示2列

案例:pd.read_excel("test2.xlsx",parse_cols=1)

7、Nrows,8、usecols需要展示的行列数进行指定,默认Nrows=None,usecols=None,这里意思就是展示全部的有数据的行和列,nrows=2,usecols=2,意思就是需求2行,3列

案例:pd.read_excel("test2.xlsx",nrows=2,usecols=2)

9、skiprows省略指定行数的数据,默认skiprows=0,从表头开始省略的行数,表头也算是数据。

案例:pd.read_excel("test2.xlsx",skiprows=1)

   

10、skipfooter省略从尾部数的行数据,默认skipfooter=0,设置0就是省略0行。

11、skip_footer是一样的

案例:pd.read_excel("test2.xlsx",skipfooter=28)

 

12、Squeeze,如果文件值包含一列,则返回一个Series,默认Squeeze=False;这里及哪怕只有一列也是按照默认的输出为dataframe,Squeeze=True,在只有一列的时候就是为Series;

#Pandas各个数据类型的关系:0维单值变量->1维Series->2维DataFrame->3维层次化

#Time- Series:以时间为索引的Series,它是由index(索引)和value(数值)组成

#DataFrame:二维的表格型数据结构。很多功能与R中的data.frame类似。

#Panel :三维的数组,可以理解为DataFrame的容器。

针对只有1列的案例如下,但是实际的直观差异需要进一步跟进。

案例:pd.read_excel("test3.xlsx",Squeeze=True)

   

13、Dtype,每列数据的数据类型。例如 {‘a’: np.float64, ‘b’: np.int32},默认Dtype=None也就是按照初始的数据类型进行输出;这里需要匹配np,需要额外定意思import numpy as np

这里把第一类的类型进行了改变

案例:pd.read_excel("test2.xlsx",dtype={'你':np.int32,'好':np.float64,'啊':np.float64,'我':np.float64,'区':np.float64})

  

14、Engine,使用的分析引擎。可以选择C或者是python。C引擎快但是Python引擎功能更加完备。默认Engine=None就是使用python。

案例:pd.read_excel("test2.xlsx",Engine="C")

 

15、Converters,在某些列中转换值的函数的命令默认Converters=None;也就是不进行转化。这个可以是公式转换,也可以是字符类型转化,默认的数字是int格式,案例改为tsr。

#Python的数字类型有int整型、long长整型、float浮点数、complex复数、以及布尔值(0和1)

 #对于布尔值,只有两种结果即True和False,其分别对应与二进制中的0和1。

#文本类型str类。

案例:pd.read_excel("test7.xlsx",converters={'str':str})

  

16、true_values,指定字符变为true,默认true_values=None,默认没有字符转化为true

17、false_values,指定字符变为false,默认false_values=None,默认没有字符转化为true

18、na_values,指定字符变为NaN,默认false_values=None,默认没有字符转化为NaN

这3个模块可以一起理解。

案例pd.read_excel("test4.xlsx",true_values='你',false_values='好',na_values='无')

 

19、keep_default_na,如果指定na_values参数,并且keep_default_na=False,那么默认的NaN将被覆盖,否则添加。默认keep_default_na=True;默认不会被新定义的NaN影响默认的NaN规则

默认的NaN定义'-1.#IND', '1.#QNAN', '1.#IND', '-1.#QNAN', '#N/A N/A','#N/A', 'N/A', 'NA', '#NA', 'NULL', 'NaN', '-NaN', 'nan', '-nan', ''转换为NaN

案例pd.read_excel("test5.xlsx",na_values=['无'],keep_default_na=False)

  

20、Verbose,是否显示各种解析器的输出信息,例如:“在非数字列中显示插入的na值的数目”等。默认Verbose=False;默认不显示,python默认使用紧凑的正则表达式(即普通的正则表达式),但为了提高正则表达式的可读性,我们可以使用松散的。这个模块主要是意思理解。

21、parse_dates,分析日期,默认=False;也就是不分析日期,适用于表格里面没有日期的。如果为true,需要指定将哪一列解析为时间索引。如果列或索引包含不可分析的日期,则整个列或索引将作为对象数据类型原封不动地返回。对于非标准的日期时间分析,请在pd.read_excel之后使用pd.to_datetime。注意:对于ISO8601格式的日期,存在一个快速路径。

 [1, 2, 3] -> 解析1,2,3列的值作为独立的日期列;

 [[1, 3]] -> 合并1,3列作为一个日期列使用dict,

 {‘foo’ : [1, 3]} -> 将1,3列合并,并给合并后的列起名为"foo"

案例1:pd.read_excel("test13.xlsx",parse_dates=['第1次'])

案例2:pd.read_excel("test13.xlsx",parse_dates=[['第1次','第2次']])

案例3:pd.read_excel("test13.xlsx",parse_dates={'foo':['第1次','第3次']})

   

22、date_parser,日期分析器,默认=None;也就是不开启,适用于表格里面没有日期的。用于解析日期的函数,默认使用dateutil.parser来做转换。dateutil.parser 顾名思意 就是与日期相关库里的一个日期解析器,能够将字符串转换为日期格式,我们来看看具体的用法。

需要在线安装 pip install python-dateutil;一般要分析的情况下,就开启就可以了。

案例:pd.read_excel("test13.xlsx",date_parser=True)

23、Thousands,设置默认的数字千分符号,默认thousands =None;默认不设置。此参数仅对Excel中存储为文本的列是必需的,无论显示格式如何,都将自动分析任何数值列,这里读取excel的时候,不管excel有没有千分符,都会默认无。

数据格式的展示

 

案例:pd.read_excel("test12.xlsx",Thousands=",")

但是好像没有直接的明显差异,需要持续跟进

  

24、Comment,标识着多余的行不被解析。如果该字符出现在行首,这一行将被全部忽略。这个参数只能是一个字符,空行;默认Comment=None。表示不按照这个方式忽略

案例:pd.read_excel("test11.xlsx",comment='#')

  

25、convert_float,转换浮点数,默认convert_float=True ;将整数浮点转换为int(即1.0–>1)将整数浮点转换为int(即1.0–>1)。如果为False,则所有数值数据都将作为浮点数读取:Excel将所有数字作为浮点数存储在内部。

案例:pd.read_excel("test10.xlsx",convert_float=False)

   

26、mangle_dupe_cols,默认mangle_dupe_cols=True;则重复列将指定为“x.0”…“x.n”,如果设定为false则会将所有重名列覆盖,但是实际测试会报错!

 

此处可能是Pandas包的问题,持续跟进~

直接读取和设置True均正常

案例:pd.read_excel("test9.xlsx",mangle_dupe_cols=True)

换个思路,自己设置标题,也是一样

案例:pd.read_excel("test9.xlsx",header=None,names="1111",mangle_dupe_cols=False)

 

 

参考资料:https://blog.csdn.net/u010801439/article/details/80052677

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Python】pd.read_excel应用 的相关文章

  • 数学计算模拟类问题:加法,除法和幂,注意越界问题。题 剑指Offer,Pow(x, n) ,Divide Two Integers

    数学计算的模拟类题目 往往是要求实现某种计算 比如两数相除 实现的过程中会有所限定 比如不允许乘法等等 这类题目首先要注意计算过程中本身的特殊情况 比如求相除 则必须首先反映过来除数不能为0 其次要记得考虑负数的情况 如果计算范围不单单是整
  • 简单的matlab分布式计算

    matlab的分布式计算可以理解为一台机器作为client 主控机 其他的机器分别作为计算的结点 要由client进行控制和操作 如果把单机上的 m文件直接放到client运行 是不会产生分布式计算的效果的 只相当于在主控机进行了计算 而其
  • 【JavaScript】defer和async的区别

    转载自 https segmentfault com q 1010000000640869 先来试个一句话解释仨 当浏览器碰到 script 脚本的时候 没有 defer 或 async 浏览器会立即加载并执行指定的脚本 立即 指的是在渲染
  • 华为性格测试通关指南

    一 华为性格测试关键要点 前后一致 积极乐观 吃苦耐劳 二 华为喜欢的人才性格画像 服从领导 能够按部就班按时完成工作 能够死命干活 没有太多性格 比如有野心 好胜 想当领导 坚持己见 坚持自己做事方式 别人有错当面硬刚这些类似的性格 喜欢
  • java实现航班信息查询管理系统

    一 任务概述 二 目录结构 三 详细代码 JDBC工具类模块 package com kaikeba task task010404 utils import com alibaba druid pool DruidDataSource i
  • python打包编译成pyd或者,Python .py生成.pyd文件并打包.exe 的注意事项说明

    最近用python写了一个小程序 想发布出去让人试用又不想暴露源码 搜索了一下发现将py文件编译成pyd文件就能达到目的 转换过程很简单 但是在调用pyd文件并且打包为单个exe文件的时候遇到一个坑 搞了一天才解决 在这里分享一下 首先安装
  • 使用post请求建立长连接实现sse,接收后端主动发来的消息,实现chat-gpt的弹字效果,EventSource的应用

    每日鸡汤 每个你想要学习的瞬间都是未来的你向自己求救 最近在做一个chat相关的功能 然后由于接口返回特别特别慢 所以需要搞一个慢慢等待的效果 就是接口一个单词一个单词的返回 然后前端收到一个展示一个 提升用户体验 说实话我是第一次做这类需
  • 消费者不用手机凭一张脸就能完成支付和转账

    以前出门要看钱包交易完成的节点 而商业活动发生于诸多场景中 商家若想为消费者提供更好的服务 就必须更深入地了解消费人群 赢得消费者的青睐 蜻蜓二代推出的AI刷脸会员功能 帮助商家完成顾客的会员一键开卡 不涉及填表 确认 签字等繁琐的流程 只
  • ETL为什么经常变成ELT甚至LET?

    ETL是将数据从来源端经过清洗 extract 转换 transform 加载 load 至目的端的过程 正常的 ETL 过程应当是 E T L 这三个步骤逐步进行 也就是先清洗转换之后再加载进目标端 通常是数据库 最后在数据库中的只是合理
  • Hive(7) Hive的DML语句-Hive的数据库和表的修改和删除

    Hive 3 DML语句 DML 数据操作语句 导入数据 直接从文件向表中导入数据 load data load data local inpath lt 文件路径 gt overwrite into table lt 表名 gt part
  • 内部类详解

    目录 一 什么是内部类 二 内部类的划分 2 1 实例内部类 2 2 静态内部类 2 3 局部内部类 2 4 匿名内部类 一 什么是内部类 定义 当一个事物的内部 还有一个完整的结构进行描述 而这个内部的完整的结构又只为外部事物提供服务 那
  • 递归-回溯算法

    一 递归 回溯算法 1 递归的思想 递归就是方法自己调用自己 每次调用的时候传入不同的变量 2 递归的原理 1 每执行一个方法 就在 栈内存 中分配一块空间 该空间是独立的 2 如果是 基本数据类型 则每块空间中的变量都是局部变量 是相互
  • 简单理解c语言——‘\0’ ,‘0’, “0” ,0之间的区别

    看来基础还是很重要的 基础不扎实就难以学好c语言 就别说写出高质量的c语言代码了 今天 我就被这个问题折磨的不行了 哈哈 不过现在终于明白了 0 0 0 之间的区别了 首先比较一下 0 和 0 的区别 有一个共同点就是它们都是字符 在c语言
  • 喜报

    8月16日 2023年度 IDC中国FinTech 50 榜单正式揭晓 擎创科技继2022年入选该榜单后 再次以创新者姿态成功入选 并以技术赋能业务创新 成为中国金融科技领域创新与活力的重要贡献者 IDC中国FinTech 50 旨在评选出
  • 网络安全岗位介绍——售前工程师

    一 工作内容 1 独立完成并配合销售人员引导客户完成方案设计 产品选型 配置报价和能为客户提供安全咨询与方案优化等服务 2 作为售前工程师 跟踪整个项目的进展 和销售进行配合 协调公司各种资源完成项目中标 3 编写投标文件的技术方案文档及投
  • Elasticsearch增删改查 之 —— Update更新

    Elasticsearch增删改查 之 Update更新 更新操作 一般用这个的 应该不会很多吧 ES本身还是一个倾向于查询检索的框架 对于这种更新的操作 太过频繁总归是不好的 不过阅读本篇后 你可以使用Script对所有的文档执行更新操作
  • 执行程序报错,could notcreate temporary directory ‘/tmp/poifiles‘

    could notcreate temporary directory tmp poifiles chmod R 777 tmp poifiles 重启jar包 运行命令就可以了
  • vba字典的key属性、item属性和keys方法、items方法、add方法

    1 key属性 修改字典中某一键值对的key值 2 item属性 修改字典中某一键值对的item值 3 keys方法 获取字典的所有键 4 items方法 获取字典的所有值 5 item属性 如果 key已存在 则修改其item值 如果不存
  • Jenkins之Maven的配置

    Jenkins之Maven配置与项目集成 1 Maven集成 1 1 环境准备 1 2 Jenkins的web界面配置 1 3 安装maven插件 1 Maven集成 在Jenkins上发布Java项目时需要使用Maven来进行构建打包 G

随机推荐

  • LLVM是如何编译指令的

    本文将会通过一条指令在LLVM中的不同阶段 从源程序语言中的语义结构到成为机器二进制码来研究LLVM的工作原理 本文不会介绍LLVM是如何工作的 这需要理解LLVM的设计以及code以及各种细节 输入代码 我们从一段C代码开始探险 如下 i
  • kali Linux-2020.3 火狐浏览器改为中文

    1 打开右上角菜单栏 进行下图操作 2 更改语言这里 支持下拉框选择 如果没有中文选项 进行搜索下载 图中为以更新中文后的 英文状态下位置应该是一样的 3 在搜索语言里找到中文 点击添加 添加成功后会提示 应用并重新打开 点击这个选项重新打
  • Linux调试、跟踪命令:strace/ltrace、ldd、objdump、nm、strings

    一 strace ltrace 1 1 功能 strace Trace system calls and signals 跟踪进程的系统调用或信号产生的情况 ltrace A library call tracer 跟踪进程调用库函数的情况
  • Android上面的百度地图使用步骤

    1 下载百度地图移动版API Android 开发包 要在Android应用中使用百度地图API 就需要在工程中引用百度地图API开发包 这个开发包包含两个文件 baidumapapi jar和libBMapApiEngine so 下载地
  • Swagger 的使用

    文章目录 Swagger 的使用 前言 Swagger 简介 SpringBoot 集成 Swagger 2 x SpringBoot 集成 Swagger 3 0 配置 Swagger 配置文档信息 配置扫描接口 配置功能是否启动 配置
  • scrapy,scrapy-redis显示:什么都没爬取到:Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)

    解决方法一 问题 刚开始爬取有 但是后面都是Crawled 0 pages at 0 pages min scraped 0 items at 0 items min 解决 可能是里面没有设置 yield scrapy Request do
  • 在Ubuntu 14.04.2 LTS上安装Qt

    Qt是一个跨平台的应用程序框架 广泛用于开发具有GUI界面的应用软件以及命令行工具 几乎所有操作系统都可以使用Qt 如Windows Mac OS X Android等 用于开发Qt应用程序的主要编程语言是C 但是可以使用诸如Python
  • 1.12mc java几,1.12 - 崩溃解答 - MC百科社群 - MC百科

    游戏是在mcbbs上找的the disguiser Mohist 崩溃报告 WARNING coremods are present ForgelinPlugin Forgelin 1 8 3 jar Inventory Tweaks Co
  • AcWing 1875. 贝茜的报复 枚举+dfs

    AcWing 1875 贝茜的报复 打卡 这题的dfs太妙了 include
  • window.history.go(-1)和window.location.go(-1)的区别

    为什么80 的码农都做不了架构师 gt gt gt window history go 1 是返回上一页 window location go 1 是刷新上一页 弹出子页面
  • 安装redis 管理工具、redis扩展服务

    1 查看php 的版本 还有这种方式 在网站根目录下新建一个简单的phpinfo文件 输入phpinfo函数 在浏览器中打开 2 PHP 7 3 4 安装 Redis 4 0 Windows系统 直接在浏览器中搜索下载 Redis 4 0
  • svg怎么转换成png格式?

    svg怎么转换成png格式 在我们日常的工作和学习当中 会使用各种格式的图片 在使用的过程中 我们会发现每种格式的图片所具备的特点是完全不同的 像svg就是一种矢量图 一系列由线连接的点的实体 一般在用在图像 文字以及标志设计等场景 从它的
  • 按键精准控制步进电机起保停,正反转(Arduino+TB6600驱动器)

    精准控制步进电机起保停 正反转 Arduino TB6600驱动器 步进电机和驱动器相关的资料 https pan baidu com s 1udb4MyEOXk4CTO7TKRHj6w 提取码 fuea 步进电机 TB6600驱动器 接线
  • 数据准备(data preparation)

    数据预处理及数据准备 提到数据预处理 首先不得不考虑到pandas库 链接pandas 文章目录 数据预处理及数据准备 数据准备前置知识 数据处理步骤 数据预处理实战 二 使用步骤 1 读入数据 创建一个关于所有变量的分散矩阵 数据准备前置
  • 常用函数和代码

    1 加载数据函数 数据保存 import numpy as np import dill dill dump session GAT pkl dill load session t20 pkl save path data Enron gr
  • pytest测试报告Allure - 动态生成标题生成功能、添加用例失败截图

    一 动态生成标题 默认 allure 报告上的测试用例标题不设置就是用例名称 其可读性不高 当结合 pytest mark parametrize 参数化完成数据驱动时 如标题写死 其可读性也不高 那如果希望标题可以动态的生成 采取的方案是
  • 赋值、浅拷贝与深拷贝

    一 数据类型 数据分为基本数据类型 String Number Boolean Null Undefined Symbol 和引用数据类型 基本数据类型 基本数据类型存储在栈内存中 引用数据类型 存储的是该对象在栈中引用 即引用地址 真实的
  • csv数据筛选 matlab_在matlab中从CSV文件中读取特定列

    I am trying to read a CSV file in matlab I just want to read the second column but the code below prints out everything
  • Unity集成Leap Motion

    转载自 http www cocoachina com game 20150716 12625 html 演示视频文章最后 如果你已经熟悉编程的概念 理解并在C 语言方面有一定的经验 并且对面向对象编程思想和设计概念有所熟悉 如果你了解3D
  • 【Python】pd.read_excel应用

    第一次运行必须带上定义 import pandas as pd 故意报错展现 pd read excel 1 read excel io sheet name header names index col parse cols usecol