Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python 实现Excel自动化办公《下》

Python 实现Excel自动化办公《下》

作者头像
Wu_Candy
发布于 2022-07-04 09:42:29
发布于 2022-07-04 09:42:29
85610
代码可运行
举报
文章被收录于专栏:无量测试之道无量测试之道
运行总次数:0
代码可运行

上一讲我们讲到了Python 针对Excel 里面的特殊数据处理以及各种数据统计,本讲我们将引入Pandas 这个第三方库来实现数据的统计,只要一个方法就可以统计到上一讲的数据统计内容,本讲也会扩展讲讲Pandas所涉及到的相关使用方法。

统计输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pandas as pd
pd1=pd.read_excel("test1.xls")
pd2=pd.read_excel("test2.xls",skiprows=2) #skiprows=2表示忽略前几行,skip_footer用来省略尾部的行数

#统计输出
print(pd1.describe()) #数字类型的统计输出,它是DateFrame类型
print(pd1.min()) #输出每一列里面最小值
print(pd1.max())#输出每一列里面最大值
print(pd1.sum()) #输出每一列的求和值
print(pd1.mean()) #输出每一列的平均值
print(pd1.median())#输出每一列的中位数

通用输出或格式化输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#通用输出或格式化输出
print(pd1.head()) #输出前五条数据,DateFrame类型的带有标签的数据
print(pd1.tail()) #输出后五条数据,DateFrame类型的带有标签的数据
print("获取到所有的值:\n{0}".format(pd1))#格式化输出所有数据
print(pd1.values) #输出的是全部值的一个二维的ndarray
print(pd1.dtypes) #输出每一列数据的数据类型,它是Series类型的数据
print(pd1.columns) #输出序号的名字,它是Index类型的索引对象
print(pd1.columns.values) #输出序号的名字,返回的是一个一维的ndarray
print(pd1.shape) #输出

指定输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#指定输出
print(pd1.values[0]) #输出第一行的值
print(pd1.values[0:2])#查看第一二行的值,返回的是一个二维的ndarray
print(pd1[0:3]) #返回的是DateFrame类型的前三列数据,带有标签
print(pd1[0:3].values) #返回的是ndarray类型的前三列数据的值,不带表头标签
print(pd1.sample(2).values) #获取指定行数的值,它是一个二维的ndarray
print(pd1['工号'].values) #查看某一列所有的值,返回的是一维的ndarray

转置输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#转置输出
print(pd1.T)#整个数据集的翻转展示
print(pd1[0:3].T) #前三行数据翻转展示

排序输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#排序输出
print(pd1.sort_index(axis=1,ascending=False)) #axis等于1按列进行排序 如ABCDEFG 然后ascending倒叙进行显示
print(pd1.sort_values(by="月工资"))#按值进行排序

常规操作

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#常规操作
pd1['job']=None #增加一列
pd1.loc[1]=[1000,'林ok','男','哈尔滨','1978-05-28 00:00:00','2003-06-20 00:00:00',333,0.5,555.0,"tester"]#增加一行
pd1.drop([1],axis=0,inplace=True) #删除指定行 axis=0 表示行,inplace=True表示在原有的数据上改变
pd1.drop('job',axis=1,inplace=True)#删除指定列 axis=1 表示列
pd1.to_excel('test1.xls',sheet_name='new sheet',index=False,header=True)#保存新增的内容,index表示是否增加索引,header表示是否加列表表头
pd1.index=(pd1.index+100) #设置索引的值
pd1.rename(columns={'工号':'num','姓名':'name'},inplace=True) #修改表头信息
pd1.set_index("num",drop=True,inplace=True) #设置索引的值,drop默认True,普通列被用作索引后,原列删除
pd1.reset_index(drop=False,inplace=True)#还原索引为普通列,重新变为默认的整型索引,drop=False 原有的索引不变,添加一列,列名index;
pd.set_option('display.max_rows', 3,'display.max_columns', 3,"display.max_colwidth",3,'display.width',3) #设置显示
print(pd1.head())
print(pd1.index) #输出索引信息
print(len(pd1.index)) #输出索引的长度

合并操作

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#合并操作
pd3=pd.concat([pd1,pd2],axis=0) #将两个excel数据进行合并操作,注意保持数据格式上的一致
print(pd3)

缺失值处理

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#缺失值处理
print(pd2)
print(pd2['job'].isna())#检测是否是Nan
print(pd2['job'].isnull())#检测是否是空值
print(pd2['job'].notna())#检测是否是Nan
print(pd2['job'].notnull())#检测是否是空值
print(pd2.loc[pd2['job'].notnull(),:]) #过滤出来job不为null的行
print(pd2.drop([1],axis=0,inplace=True)) #删除指定行 axis=0 表示行,inplace=True表示在原有的数据上改变
print("*"*100)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np #这里是为了构建数据引入的,后面会有文章单独讲解
df = pd.DataFrame([[np.nan, 2, np.nan, 0],
 [3, 4, np.nan, 1],
 [np.nan, np.nan, np.nan, np.nan],
 [np.nan, 3, np.nan, 4]],
 columns=list('ABCD'))
print(df)
print(df.fillna(100))#将为空的填充为100print(df.fillna({"A":222},inplace=True))#将A列为nan的值设置为222
print(df.dropna(axis="columns"))#删除有空值的列
print(df.dropna(axis=1,how="all"))#删除掉全是空值的列
print(df.dropna(axis=0,how="all"))#删除掉全是空值的行

这一讲就分享到这里,内容也不少需要多实践去了解它的使用技巧,以上更多的是print语句进行输出来检查每一个是否符合预期。

友情提示:“无量测试之道”原创著作,欢迎关注交流,禁止第三方不显示文章来源时转载。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 无量测试之道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
你好,作者,我是python及数据库初学者,如果我的字段有bigdecimal这样的字段类型,那使用vavlue的时候进行长度的对比的时候,会报错,请问这个情况应该如何优化代码(提供优化思路也可以),我暂时想不到解决办法,我还在熟悉你的代码过程,我的联系方式q
你好,作者,我是python及数据库初学者,如果我的字段有bigdecimal这样的字段类型,那使用vavlue的时候进行长度的对比的时候,会报错,请问这个情况应该如何优化代码(提供优化思路也可以),我暂时想不到解决办法,我还在熟悉你的代码过程,我的联系方式q
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
【愚公系列】2023年07月 Pandas数据分析之展示
Pandas是一种数据分析工具,是Python中非常流行的库之一,主要用于数据清洗、数据转换、数据分析和数据可视化。Pandas提供了两种重要的数据结构,分别是Series(一维的数据结构)和DataFrame(二维的数据结构)。
愚公搬代码
2025/05/28
770
【愚公系列】2023年07月 Pandas数据分析之展示
【Data Mining】机器学习三剑客之Pandas常用用法总结(上)
看pandas之前我建议先看我的numpy总结,效果更佳。 【Data Mining】机器学习三剑客之Numpy常用用法总结 可以大概理解为numpy主要是用来生成数据,并且进行数据运算的工具 而pandas主要是用来整个数据的管理,也就是整个数据的摆放或是一些行列的操作等等。当然也不完全是这个样子。
接地气的陈老师
2019/12/09
5130
Python 数据处理:Pandas库的使用
✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的博客 🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 🥭本文内容:Python 数据处理:Pandas库的使用 ---- Python 数据处理:Pandas库的使用 1.Pandas 数据结构 1.1 Series 1.2 DataFrame 2.基本功能 2.1 重新索引 2.2 丢弃指定轴上的项 2.3 索引、选取和过滤 2.4 用 loc 和 iloc 进行选取 2.5
小嗷犬
2022/11/15
23.7K0
Pandas基础命令速查表
pd.set_option('display.height', 1000) pd.set_option('display.max_rows', 500) pd.set_option('display.max_columns', 500) pd.set_option('display.width', 1000)
光点神奇
2019/05/28
1.1K0
小白也能看懂的Pandas实操演示教程(下)
今天主要带大家来实操学习下Pandas,因为篇幅原因,分为了两部分,本篇为下。上篇内容见:小白也能看懂的Pandas实操演示教程(上)。
1480
2019/09/25
2.6K0
小白也能看懂的Pandas实操演示教程(下)
pandas 处理缺失值[dropna、drop、fillna][通俗易懂]
对于dropna和fillna,dataframe和series都有,在这主要讲datafame的
全栈程序员站长
2022/11/04
2.1K0
Python自动化办公--Pandas玩转Excel数据分析【三】
 预测的话就直接输入x代入方程,这是deme仅供参考,更多的可以采用机器学习的一些算法进行求解。
汀丶人工智能
2022/12/21
7320
Python自动化办公--Pandas玩转Excel数据分析【三】
Pandas-DataFrame基础知识点总结
1、DataFrame的创建 DataFrame是一种表格型数据结构,它含有一组有序的列,每列可以是不同的值。DataFrame既有行索引,也有列索引,它可以看作是由Series组成的字典,不过这些Series公用一个索引。 DataFrame的创建有多种方式,不过最重要的还是根据dict进行创建,以及读取csv或者txt文件来创建。这里主要介绍这两种方式。 根据字典创建 data = { 'state':['Ohio','Ohio','Ohio','Nevada','Nevada'], '
石晓文
2018/04/11
4.4K0
Pandas-DataFrame基础知识点总结
python学习之pandas
#Pandas ''' 1,Pandas是Python的一个数据分析报包,该工具为解决数据分析任务而创建。 2,Pandas纳入大量库和标准数据模型,提供搞笑的操作数据集所需的工具 3.pandas提供大量能使我们快速便捷地处理数据的1函数方法 4,Pandas是字典形式,基于Numpy创建,让Numpy为中心的应用变得更加简单 ''' import pandas as pd import numpy as np #4 Pandas 数据结构 #4.1Series
py3study
2020/01/15
1K0
jupyter notebook 之 pandas
Pandas 是python的一个数据分析包,最初由AQR Capital Management于2008年4月开发,并于2009年底开源出来,目前由专注于Python数据包开发的PyData开发team继续开发和维护,属于PyData项目的一部分。Pandas最初被作为金融数据分析工具而开发出来,因此,pandas为时间序列分析提供了很好的支持。 Pandas的名称来自于面板数据(panel data)和python数据分析(data analysis)。panel data是经济学中关于多维数据集的一个术语,在Pandas中也提供了panel的数据类型。
以某
2023/03/07
3.4K0
jupyter notebook 之 pandas
数据分析之Pandas(一)
今日来谈谈数据分析的pandas使用,本来今天出cs231n的全连接网络更新的,结果没写成文章,太长了,至少2000-3000字,今晚有课,所以就没写成,明天继续搞,而且这个题难度有点大,所以消化一下,在分享! 今天主要是学习pandas,下面一起来实战吧!
公众号guangcity
2019/09/20
1.5K0
数据分析之Pandas(一)
一篇文章就可以跟你聊完Pandas模块的那些常用功能
在数据分析工作中,Pandas 的使用频率是很高的,一方面是因为 Pandas 提供的基础数据结构 DataFrame 与 json 的契合度很高,转换起来就很方便。 另一方面,如果我们日常的数据清理工作不是很复杂的话,你通常用几句 Pandas 代码就可以对数据进行规整。
1480
2019/07/22
5.4K0
一篇文章就可以跟你聊完Pandas模块的那些常用功能
Python自动化办公之Excel对比工具
今天我们继续分享真实的自动化办公案例,希望各位 Python 爱好者能够从中得到些许启发,在自己的工作生活中更多的应用 Python,使得工作事半功倍!
周萝卜
2022/04/06
9710
Python自动化办公之Excel对比工具
pandas数据清洗,排序,索引设置,数据选取
df.isnull() df的空值为True df.notnull() df的非空值为True
李智
2018/08/03
3.5K0
pandas应用整理
也可以使用loc或iloc来访问index或某个固定位置,其中loc是访问index或columns的名称,而iloc访问的是序号
猫叔Rex
2020/06/30
1.7K0
python数据分析和可视化——一篇文章足以(未完成)
开发工具:PyCharm Community Edition 2021.3.1(或Jupyter Lab) 【pip install jupyter lab】
红目香薰
2022/11/29
9420
python数据分析和可视化——一篇文章足以(未完成)
Python数据科学(六)- 资料清理(Ⅰ)1.Pandas1.资料筛选2.侦测遗失值3.补齐遗失值
成功爬取到我们所需要的数据以后,接下来应该做的是对资料进行清理和转换, 很多人遇到这种情况最自然地反应就是“写个脚本”,当然这也算是一个很好的解决方法,但是,python中还有一些第三方库,像Numpy,Pandas等,不仅可以快速简单地清理数据,还可以让非编程的人员轻松地看见和使用你的数据。接下来就让我们一起学习使用Pandas!
Python攻城狮
2018/08/23
2.3K0
Python数据科学(六)- 资料清理(Ⅰ)1.Pandas1.资料筛选2.侦测遗失值3.补齐遗失值
【缺失值处理】拉格朗日插值法—随机森林算法填充—sklearn填充(均值/众数/中位数)
缺失值的处理准备数据1 sklearn填充(1)使用均值进行填补(连续型特征)(2)使用中位数、0进行填补(连续型特征)(3)使用众数进行填补(离散型特征)(4)KNN填补
用户7886150
2020/12/30
3.2K0
Pandas必会的方法汇总,数据分析必备!
用Python做数据分析光是掌握numpy和matplotlib可不够,Pandas是必须要掌握的一个重点,numpy虽然能够帮我们处理处理数值型数据,但是这还不够,很多时候,我们的数据除了数值之外,还有字符串,还有时间序列等,比如:我们通过爬虫获取到了存储在数据库中的数据。
小F
2021/09/14
6.4K0
上手Pandas,带你玩转数据(1)-- 实例详解pandas数据结构
昨天写一个小项目的时候,想用pandas把数据写入到Excel中去,结果发现我原先写的那套pandas教程是真的垃圾啊。 痛定思痛,我决定重写一份。
看、未来
2021/09/18
7K0
推荐阅读
相关推荐
【愚公系列】2023年07月 Pandas数据分析之展示
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档