python pandas怎么跳读sheet

python pandas怎么跳读sheet,第1张

前面的回答完全不知道在说什么跟题主的问题没关毛钱关系。。

这个问题里没有描述是要将5个 sheet 的平均值合并到一起展示还是单独展示,我就按合并的展示来 *** 作

f = pdExcelFile('E:\Python\CD\CD2020xlsx')

print(fsheet_names)

col_list = ['a','b','c','d','e']

result = [] # 存放每个 sheet 求平均之后的结果

for i in fsheet_names:

data = pdread_excel(f, sheet_name=i,header=0,index_col=0,parse_dates={'datetime': [0]}, encoding='utf-8')

resultappend(datamean()to_frame(name=i)) # 求均值并放入列表

pdconcat(result, axis=1) # 将结果中的5个 sheet 合并成一个 dataframe

解释一下:

datamean() 计算出每一列的平均值,结果是一个 Series 。为了方便后面合并用方法 to_frame(name=i) 转换成 dataframe

pdconcat 可以用来合并多个 dataframe 参数 axis=1 是按列来合并

结果大概是这样的

Excel体积变大,有下列常用方法减肥:XLS格式的文件,另存为XLSX格式,体积一般可以减小一半。将不必要的字体、颜色、行高、列宽、边框、备注、单元格格式等,进行去除格式。方法有:使用选择性粘贴(先复制,新建一张空白Sheet,选择性粘贴,删除原Sheet)使用记事本方法去除格式(复制单元格区域内容到记事本,然后拷回Excel空白区域)。将含有公式的单元格,复制后,在原处选择性粘贴,去除公式,只保留计算结果。将Sheet中的进行压缩或裁剪。

上午发现了一个很好用的函数,query,这里详细记录学习下

DataFramequery(self, expr, inplace=False, kwargs)

具体的使用方法,可以参考官方文档,这里我记录些我觉得好玩儿的内容

官方介绍:

使用query函数,可以通过 @ 引用当前的变量

数据集的话,使用的是上一篇的内容: pandas实例-筛选与过滤-Fictional Army

注意几个点:

这里直接使用index代表了

就和SQL里一样使用的,看上面的那个例子

通常 == 和 != 表示相等或不相等,但是在query中,可以用来代替 in

query中同样适用Boolean,就和布尔数组一样的玩儿法,但又稍微有点儿特殊

这里把布尔值作为了一列,要不然query中是找不到的,

这里还可以配合 not 或者 ~ 一起使用表示取反,就是非的意思

使用下来,感觉query,就是和SQL一样的,很好用

Pandas在数据科学中发挥着重要作用,它可帮助我们建立数据科学家和数据分析师的基础技能。

数据是当今世界不可或缺的一部分。它可以帮助我们预测各种事件,并为我们的生活指明方向。Pandas帮助我们控制和 *** 纵这些数据。Pandas提供了基本的数据结构,如Series,DataFrame和Panel,可用来处理数据集和时间序列。它是免费使用的开放源代码库,使其成为世界上使用最广泛的数据科学库之一。

Pandas拥有执行各种任务的能力。无论是执行诸如查找数据的均值,中位数和众数之类的任务,还是根据我们的意愿处理大型CSV文件并处理内容的任务,Pandas都能做到。简而言之,要掌握数据科学,必须精通Pandas。

如何安装Pandas:

使用Anaconda安装Pandas,这是在系统上获取Pandas的最简单方法,建议新手和没有经验的用户使用。例如NumPy和SciPy。下载安装程序后,只需执行简单的设置过程即可。结束后,就可以轻松访问Pandas库。

本文的文字及来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

01 重要的前言

这段时间和一些做数据分析的同学闲聊,我发现数据分析技能入门阶段存在一个普遍性的问题,很多凭着兴趣入坑的同学,都能够很快熟悉Python基础语法,然后不约而同的一头扎进《利用Python进行数据分析》这本经典之中,硬着头皮啃完之后,好像自己什么都会了一点,然而实际 *** 作起来既不知从何 *** 起,又漏洞百出。

至于原因嘛,理解不够,实践不够是两条老牌的拦路虎,只能靠自己来克服。还有一个非常有意思且经常被忽视的因素——陷入举三反一的懵逼状态。

什么意思呢?假如我是个旱鸭子,想去学游泳,教练很认真的给我剖析了蛙泳的动作,扶着我的腰让我在水里划拉了5分钟,接着马上给我讲解了蝶泳,又是划拉了5分钟,然后又硬塞给我潜泳的姿势,依然是划拉5分钟。最后,教练一下子把我丢进踩不到底的泳池,给我呐喊助威。

作为一个还没入门的旱鸭子,教练倾囊授了我3种游泳技巧,让我分别实践了5分钟。这样做的结果就是我哪一种游泳技巧也没学会,只学会了喝水。当一个初学者一开始就陷入针对单个问题的多种解决方法,而每一种方法的实践又浅尝辄止,在面对具体问题时往往会手忙脚乱。

拿Pandas来说,它的多种构造方式,多种索引方式以及类似效果的多种实现方法,很容易把初学者打入举三反一的懵逼状态。所以,尽量避开这个坑也是我写Pandas基础系列的初衷,希望通过梳理和精简知识点的方式,给需要的同学一些启发。目前暂定整个基础系列分为4篇,基础篇过后便是有趣的实战篇。

下面开始进入正题(我真是太唠叨了)。

02 Pandas简介

江湖上流传着这么一句话——分析不识潘大师(PANDAS),纵是老手也枉然。

Pandas是基于Numpy的专业数据分析工具,可以灵活高效的处理各种数据集,也是我们后期分析案例的神器。它提供了两种类型的数据结构,分别是DataFrame和Series,我们可以简单粗暴的把DataFrame理解为Excel里面的一张表,而Series就是表中的某一列,后面学习和用到的所有Pandas骚 *** 作,都是基于这些表和列进行的 *** 作(关于Pandas和Excel的形象关系,这里推荐我的好朋友张俊红写的《对比EXCEL,轻松学习Python数据分析》)。

这里有一点需要强调,Pandas和Excel、SQL相比,只是调用和处理数据的方式变了,核心都是对源数据进行一系列的处理,在正式处理之前,更重要的是谋定而后动,明确分析的意义,理清分析思路之后再处理和分析数据,往往事半功倍。

03 创建、读取和存储

1、创建

在Pandas中我们想要构造下面这一张表应该如何 *** 作呢?

别忘了,第一步一定是先导入我们的库——import pandas as pd

构造DataFrame最常用的方式是字典+列表,语句很简单,先是字典外括,然后依次打出每一列标题及其对应的列值(此处一定要用列表),这里列的顺序并不重要:

左边是jupyter notebook中dataframe的样子,如果对应到excel中,他就是右边表格的样子,通过改变columns,index和values的值来控制数据。

PS,如果我们在创建时不指定index,系统会自动生成从0开始的索引。

2、 读取

更多时候,我们是把相关文件数据直接读进PANDAS中进行 *** 作,这里介绍两种非常接近的读取方式,一种是CSV格式的文件,一种是EXCEL格式(xlsx和xls后缀)的文件。

读取csv文件:

engine是使用的分析引擎,读取csv文件一般指定python避免中文和编码造成的报错。而读取Excel文件,则是一样的味道:

非常easy,其实read_csv和read_excel还有一些参数,比如header、sep、names等,大家可以做额外了解。实践中数据源的格式一般都是比较规整的,更多情况是直接读取。

3、存储

存储起来一样非常简单粗暴且相似:

04 快速认识数据

这里以我们的案例数据为例,迅速熟悉查看N行,数据格式概览以及基础统计数据。

1、查看数据,掐头看尾

很多时候我们想要对数据内容做一个总览,用dfhead()函数直接可以查看默认的前5行,与之对应,dftail()就可以查看数据尾部的5行数据,这两个参数内可以传入一个数值来控制查看的行数,例如dfhead(10)表示查看前10行数据。

2、 格式查看

dfinfo()帮助我们一步摸清各列数据的类型,以及缺失情况:

从上面直接可以知道数据集的行列数,数据集的大小,每一列的数据类型,以及有多少条非空数据。

3、统计信息概览

快速计算数值型数据的关键统计指标,像平均数、中位数、标准差等等。

我们本来有5列数据,为什么返回结果只有两列?那是因为这个 *** 作只针对数值型的列。其中count是统计每一列的有多少个非空数值,mean、std、min、max对应的分别是该列的均值、标准差、最小值和最大值,25%、50%、75%对应的则是分位数。

05 列的基本处理方式

这里,我们采用SQL四大法宝的逻辑来简单梳理针对列的基本处理方式——增、删、选、改。

温馨提示:使用Pandas时,尽量避免用行或者EXCEL *** 作单元格的思维来处理数据,要逐渐养成一种列向思维,每一列是同宗同源,处理起来是嗖嗖的快。

1、增

增加一列,用df[‘新列名’] = 新列值的形式,在原数据基础上赋值即可:

2、删:

我们用drop函数制定删除对应的列,axis = 1表示针对列的 *** 作,inplace为True,则直接在源数据上进行修改,否则源数据会保持原样。

3、选:

想要选取某一列怎么办?df[‘列名’]即可:

选取多列呢?需要用列表来传递:df[[‘第一列’,‘第二列’,‘第三列’…]]

4、 改:

好事多磨,复杂的针对特定条件和行列的筛选、修改,放在后面结合案例细讲,这里只讲一下最简单的更改:df[‘旧列名’] = 某个值或者某列值,就完成了对原列数值的修改。

06 常用数据类型及 *** 作

1、字符串

字符串类型是最常用的格式之一了,Pandas中字符串的 *** 作和原生字符串 *** 作几乎一毛一样,唯一不同的是需要在 *** 作前加上"str"。

小Z温馨提示:我们最初用df2info()查看数据类型时,非数值型的列都返回的是object格式,和str类型深层机制上的区别就不展开了,在常规实际应用中,我们可以先理解为object对应的就是str格式,int64对应的就是int格式,float64对应的就是float格式即可。

在案例数据中,我们发现来源明细那一列,可能是系统导出的历史遗留问题,每一个字符串前面都有一个“-”符号,又丑又无用,所以把他给拿掉:

一般来说清洗之后的列是要替换掉原来列的:

2、 数值型

数值型数据,常见的 *** 作是计算,分为与单个值的运算,长度相等列的运算。

以案例数据为例,源数据访客数我们是知道的,现在想把所有渠道的访客都加上10000,怎么 *** 作呢?

只需要选中访客数所在列,然后加上10000即可,pandas自动将10000和每一行数值相加,针对单个值的其他运算(减乘除)也是如此。

列之间的运算语句也非常简洁。源数据是包含了访客数、转化率和客单价,而实际工作中我们对每个渠道贡献的销售额更感兴趣。(销售额 = 访客数 X 转化率 X 客单价)

对应 *** 作语句:df[‘销售额’] = df[‘访客数’] df[‘转化率’] df[‘客单价’]

但为什么疯狂报错?

导致报错的原因,是数值型数据和非数值型数据相互计算导致的。PANDAS把带“%”符号的转化率识别成字符串类型,我们需要先拿掉百分号,再将这一列转化为浮点型数据:

要注意的是,这样 *** 作,把998%变成了998,所以我们还需要让支付转化率除以100,来还原百分数的真实数值:

然后,再用三个指标相乘计算销售额:

3、时间类型

PANDAS中时间序列相关的水非常深,这里只对日常中最基础的时间格式进行讲解,对时间序列感兴趣的同学可以自行查阅相关资料,深入了解。

以案例数据为例,我们这些渠道数据,是在2019年8月2日提取的,后面可能涉及到其他日期的渠道数据,所以需要加一列时间予以区分,在EXCEL中常用的时间格式是’2019-8-3’或者’2019/8/3’,我们用PANDAS来实现一下:

在实际业务中,一些时候PANDAS会把文件中日期格式的字段读取为字符串格式,这里我们先把字符串’2019-8-3’赋值给新增的日期列,然后用to_datetime()函数将字符串类型转换成时间格式:

转换成时间格式(这里是datetime64)之后,我们可以用处理时间的思路高效处理这些数据,比如,我现在想知道提取数据这一天离年末还有多少天(‘2019-12-31’),直接做减法(该函数接受时间格式的字符串序列,也接受单个字符串):

以上就是关于python pandas怎么跳读sheet全部的内容,包括:python pandas怎么跳读sheet、Python中 *** 作Excel最好用的模块是、Python其实很简单 第十九章 Pandas之Series与DataFrame等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9315692.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存