python 第三方模块之 pandas 操作 excel

python 解析 excel 对比

版本xls读xlsx读xls写xlsx写备注
xlrd1.1.0(2017年8月22日)2.0 之后不支持xlsx
xlwt1.3.0(2017年8月22日)
openpyxl2.6.2(2019年3月29日)
XlsxWriter1.2.1(2019年9月14日)
xlutils2.0.0(2019年6月9日)需xlrd/xlwt配合
pandas0.25.1(2019年8月22日)需xlrd/xlwt/openpyxl/xlsxwriter配合

简介

Pandas是python的一个数据分析包,纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。

Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

Pandas官方文档:https://pandas.pydata.org/pandas-docs/stable/

Pandas中文文档:https://www.pypandas.cn

安装

  1. pandas依赖处理Excel的xlrd模块,所以我们需要提前安装 xlrd,命令:pip install xlrd

  2. 安装pandas模块还需要一定的编码环境,所以我们自己在安装的时候,确保你的电脑有这些环境:Net.4 、VC-Compiler以及winsdk_web。

  3. 步骤1和2 准备好了之后,就可以开始安装pandas了,命令:pip install pandas

pandas操作Excel表单

在这里插入图片描述

简单示例

import  pandas  as pd
from pandas import DataFrame# 读
data = pd.read_excel('1.xlsx')# 查看所有的值
print(data.values)# 查看第一行的值
print(data.values[0])# 查看某一列所有的值
print(data['标题列1'].values)# 新增列
data['标题列3'] = None# 新增行
data.loc[3] = ['王五', 100, '男']# 删除行:axis=0
data = data.drop([0,1], axis=0)# 删除列:axis=1
data.drop('标题列3', axis=1)# 保存
DataFrame(data).to_excel('1.xlsx', sheet_name='Sheet1', index=False, header=True)

读取excel

read_excel方法说明

pd.read_excel(io, sheet_name=0, header=0, names=None, index_col=None, usecols=None, squeeze=False,dtype=None, engine=None, converters=None, true_values=None, false_values=None, skiprows=None, nrows=None, na_values=None, parse_dates=False, date_parser=None, thousands=None, comment=None, skipfooter=0, convert_float=True, **kwds)io:excel文件
sheet_name:返回指定sheet,默认索引0返回第一个,也可用名称,如果返回多个则可用列表,为None则返回全表
header:指定表头,也可用列表指定多行
names:自定义列名,长度和Excel列长度必须一致
index_col:用作索引的列
usecols:读取指定的列,参数为列表,如[0,1]表示第1和第2列

读取Excel文件,得到的结果是一个二维矩阵

# 默认读取第一个表单
df=pd.read_excel('1.xlsx')# 可以通过sheet_name来指定读取的表单
df=pd.read_excel('1.xlsx',sheet_name='student')# 表格首行为无效数据 或 表格首行为空 ,header=1
rdexcle = pd.read_excel('1.xlsx',header=1)data=df.head() # 默认读取前5行的数据
print("获取到所有的值:\n{0}".format(data)) # 格式化输出# 通过表单索引来指定要访问的表单,0表示第一个表单
# 也可以采用表单名和索引的双重方式来定位表单
# 也可以同时定位多个表单,方式都罗列如下所示
df=pd.read_excel('1.xlsx',sheet_name=['python','student']) # 可以通过表单名同时指定多个
# df=pd.read_excel('1.xlsx',sheet_name=0) # 可以通过表单索引来指定读取的表单
# df=pd.read_excel('1.xlsx',sheet_name=['python',1]) # 可以混合的方式来指定
# df=pd.read_excel('1.xlsx',sheet_name=[1,2])  # 可以通过索引 同时指定多个
data=df.values # 获取所有的数据,注意这里不能用head()方法哦~
print("获取到所有的值:\n{0}".format(data))

查看属性、列名、显示前几行、后几行

data = pd.read_excel('1.xlsx') 
print('显示表格的属性:',data.shape)   # 打印显示表格的属性,几行几列
print('显示表格的列名:',data.columns) # 打印显示表格有哪些列名
# head() 默认显示前5行,可在括号内填写要显示的条数
print('显示表格前三行:',data.head(1)) 
# tail() 默认显示后5行,可在括号内填写要显示的条数
print('显示表格后五行:',data.tail())
data = pd.read_excel('lemon.xlsx') 
data.columns=['ID','NAME']         # 设置表头
data.set_index('ID',inplace=True)  # inplace=True表示 在当前表上修改。不用再新建表

三、pandas操作Excel的行列

1:读取指定的单行,数据会存在列表里面

# 读取指定行
df=pd.read_excel('lemon.xlsx')  # 这个会直接默认读取到这个Excel的第一个表单
data=df.ix[0].values#0表示第一行 这里读取数据并不包含表头,要注意哦!
print("读取指定行的数据:\n{0}".format(data))

2:读取指定的多行,数据会存在嵌套的列表里面:

df=pd.read_excel('lemon.xlsx')
data=df.ix[[1,2]].values  # 读取指定多行的话,就要在ix[]里面嵌套列表指定行数
print("读取指定行的数据:\n{0}".format(data))

3:读取指定的行列:

df=pd.read_excel('lemon.xlsx')
data=df.ix[1,2]#读取第一行第二列的值,这里不需要嵌套列表
print("读取指定行的数据:\n{0}".format(data))

4:读取指定的多行多列值:

df=pd.read_excel('lemon.xlsx')
data=df.ix[[1,2],['title','data']].values#读取第一行第二行的title以及data列的值,这里需要嵌套列表
print("读取指定行的数据:\n{0}".format(data))

5:获取所有行的指定列

df=pd.read_excel('lemon.xlsx')
data=df.ix[:,['title','data']].values#读所有行的title以及data列的值,这里需要嵌套列表
print("读取指定行的数据:\n{0}".format(data))

6:获取行号并打印输出

df=pd.read_excel('lemon.xlsx')
print("输出行号列表",df.index.values)输出结果是:
输出行号列表 [0 1 2 3]

7:获取列名并打印输出

df=pd.read_excel('lemon.xlsx')
print("输出列标题",df.columns.values)运行结果如下所示:
输出列标题 ['case_id' 'title' 'data']

8:获取指定行数的值:

df=pd.read_excel('lemon.xlsx')
print("输出值",df.sample(3).values)#这个方法类似于head()方法以及df.values方法输出值[[2 '输入错误的密码' '{"mobilephone":"18688773467","pwd":"12345678"}'][3 '正常充值' '{"mobilephone":"18688773467","amount":"1000"}'][1 '正常登录' '{"mobilephone":"18688773467","pwd":"123456"}']]

9:获取指定列的值:

df=pd.read_excel('lemon.xlsx')
print("输出值\n",df['data'].values)

四:pandas处理Excel数据成为字典

df=pd.read_excel('lemon.xlsx')
test_data=[]
for i in df.index.values:#获取行号的索引,并对其进行遍历:#根据i来获取每一行指定的数据 并利用to_dict转成字典row_data=df.ix[i,['case_id','module','title','http_method','url','data','expected']].to_dict()test_data.append(row_data)
print("最终获取到的数据是:{0}".format(test_data))

最后得到的结果是:

最终获取到的数据是:
[{'title': '正常登录', 'case_id': 1, 'data': '{"mobilephone":"18688773467","pwd":"123456"}'}, 
{'title': '输入错误的密码', 'case_id': 2, 'data': '{"mobilephone":"18688773467","pwd":"12345678"}'}, 
{'title': '正常充值', 'case_id': 3, 'data': '{"mobilephone":"18688773467","amount":"1000"}'}, 
{'title': '充值输入负数', 'case_id': 4, 'data': '{"mobilephone":"18688773467","amount":"-100"}'}]

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

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

相关文章

YUV / RGB 格式及快速转换

YUV是指亮度参量和色度参量分开表示的像素格式,而这样分开的好处就是不但可以避免相互干扰,还可以降低色度的采样率而不会对图像质量影响太大。 YUV是一个比较笼统地说法,针对它的具体排列方式,可以分为很多种具体的格式。转载一篇…

深度学习之 SSD(Single Shot MultiBox Detector)

目标检测近年来已经取得了很重要的进展,主流的算法主要分为两个类型: (1)two-stage方法,如R-CNN系算法,其主要思路是先通过启发式方法(selective search)或者CNN网络(RP…

短时程突触可塑性(short-term synaptic plasticity)

介绍神经元的突触可塑性一般被认为是大脑学习与记忆的分子生物学机制,它是指突触传递效率增强或减弱的变化现象。若这种变化只持续数十毫秒到几分,便称之为短时程突触可塑性,其中效率增强与减弱分别叫做短时程增强(short-term enh…

windows平台下vlc编译

转自:http://jeremiah.blog.51cto.com/539865/114190Jeremiah刚刚工作几个月,参与的第一个项目是与视频监控有关,分配给我的任务就是用开源的vlc做一个自己的播放器。对于开源项目来说,搭建起编译环境是第一步也是最重要的一步。Jeremiah在历…

深度学习之卷积神经网络 AlexNet

AlexNet 是 2012年ILSVRC 比赛冠军,远超第二名的CNN,比LeNet更深,用多层小卷积叠加来替换单个的大卷积,结构如下图所示。 ​​ 结构 预处理 原始图片:256∗256∗3256*256*3256∗256∗3 图像处理: 1.随机…

jstl处理栏目与子栏目_芬顿氧化法废水处理工程技术规范(征求意见稿)

日前,生态环境部印发《芬顿氧化法废水处理工程技术规范(征求意见稿)》,详情如下:各有关单位:为贯彻《中华人民共和国环境保护法》和《中华人民共和国水污染防治法》等法律法规,防治环境污染,改善环境质量&a…

深度学习之卷积神经网络 ZF Net

ZFNet出自论文《 Visualizing and Understanding Convolutional Networks》,作者Matthew D. Zeiler和Rob Fergus——显然ZFNet是以两位作者名字的首字母命名的。ZFNet通常被认为是ILSVRC 2013的冠军方法,但实际上ZFNet排在第3名,前两名分别是…

vb整合多个excel表格到一张_[Excel]同一工作簿中多个工作表保存成独立的表格

一个工作簿中有多个表格,如何将其表格单独保存成一个独立的文档呢?如果表格少,操作如下:选中要导出表格的标签名--鼠标邮件--移动或复制表格--新建工作簿。当如果表格太多呢,以上方法就太罗嗦了。简单方法用VBA,步骤如…

OpenCore 的代码结构

OpenCore的代码结构 以开源Android 的代码为例,Open Core 的代码在Android 代码的External/Opencore 目录 中。这个目录是OpenCore 的根目录,其中包含的子目录如下所示: android:这里面是一个上层的库,它基于PVPlaye…

深度学习之卷积神经网络 GoogleNet

GoogLeNet Incepetion V1 这是GoogLeNet的最早版本,出现在2014年的《Going deeper with convolutions》。之所以名为“GoogLeNet”而非“GoogleNet”,文章说是为了向早期的LeNet致敬。 深度学习以及神经网络快速发展,人们不再只关注更给力的硬件、更大…

Jzoj4348 打击目标

又是被水题坑了。。。 一直想不出来看题解说要什么主席树,于是开始打离线算法 结果打到一半发现要强制在线。。No!!! 发现直接AC自动机似乎可做?树剖之后在AC自动机上跑的时候判断一下不就好了吗!连线段树都不要 让后快乐切掉,速度还可以&…

深度学习之卷积神经网络 VGGNet

2014年,牛津大学计算机视觉组(Visual Geometry Group)和Google DeepMind公司的研究员一起研发出了新的深度卷积神经网络:VGGNet,并取得了ILSVRC2014比赛分类项目的第二名(第一名是GoogLeNet,也是…

SpringMVC 返回json的两种方式

前后台数据交互使用json是一种很重要的方式.本文主要探讨SpringMVC框架使用json传输的技术. 请注意,本文所提到的项目使用Spring 版本是4.1.7,其他版本在具体使用上可能有不一样的情况. 一、最常见——使用RequestBody的注解返回一个实体对象; 使用方式如下: 1:引入jar包&#…

深度学习之卷积神经网络 ResNet

论文 Identity Mappings in Deep Residual Networks 2015年,ResNet(Residual Neural Network)由微软研究院的Kaiming He等四名华人提出,并在ILSVRC2015比赛中取得冠军,在top5上的错误率为3.57%,同时参数量…

搭建SSM框架之Spring

作为一枚大四准备毕业的学生,最重要的事便是毕业设计,前些日子刚刚拿到毕设题目:“3D网络图:面向网络结构数据的可视化软件设计”,(⊙o⊙)…,怎么说哪,看到题目就是一头雾水(前几届不…

单列表_使用Excel中的quot;记录单quot;功能快速录入数据

在Excel中进行数据录入的时候,平常都是一行一行地录入数据,但是有时候在单元格之间,行与行,列与列之间频繁地切换去录入数据,费事费力还容易出错。今天给你推荐一个既好用又有效率的Excel中的隐藏功能——“记录单”。…

CentOS 6.9下的Setup工具(用于管理服务/防火墙/网络配置/验证服务)

说明:Setup工具套件好像是CentOS下特有的用于管理服务/防火墙/网络配置等,其实就是基于命令行模式界面的GUI工具。唯一特点就是方便。 安装: #安装Setup命令工具 yum -y install setuptool #安装Setup工具配套的系统服务组件 yum -y insta…

深度学习之非极大值抑制(Non-maximum suppression,NMS)

非极大值抑制(Non-maximum suppression,NMS)是一种去除非极大值的算法,常用于计算机视觉中的边缘检测、物体识别等。 算法流程 给出一张图片和上面许多物体检测的候选框(即每个框可能都代表某种物体)&…

vue项目token放在哪里_关于vue动态菜单的那点事

vue-element-admin4.0国内节点访问地址:https://panjiachen.gitee.io/vue-element-admin-site/zh/本此使用的是https://github.com/PanJiaChen/vue-element-admin/tree/i18n 国际化分支的版本。说是除了国际化其他都一样。本文主要介绍前台动态的使用资源权限。后台…

深度学习之 ROI Pooling

什么是ROI? ROI是 Region of interest 的简写,指的是 Faster R-CNN 结构中,经过 RPN 层后,产生的 proposal 对应的 box 框。 ROI Pooling 顾名思义,是 pooling 层的一种,而且是针对 ROIs 的 pooling。整个…