前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《Python for Excel》读书笔记连载12:使用pandas进行数据分析之理解数据

《Python for Excel》读书笔记连载12:使用pandas进行数据分析之理解数据

作者头像
fanjy
发布2021-12-20 14:04:47
4.2K0
发布2021-12-20 14:04:47
举报
文章被收录于专栏:完美Excel完美Excel

说明:有点忙,这本书最近更新慢了一些,抱歉!这部分仍免费呈现给有兴趣的朋友。附已发表内容链接:

1.为什么为Excel选择Python?

2.为什么为Excel选择Python?(续)

3.Python开发环境之Anaconda

4.Python开发环境之 jupyter jupyter笔记本

5.Python开发环境之Visual Studio Code

6.Python入门之基本数据类型和数据结构

7.Python入门之语句、函数和代码组织

8.NumPy入门

9.使用pandas进行数据分析之核心数据结构——数据框架和系列

10.使用pandas进行数据分析之数据操作

11.使用pandas进行数据分析之组合数据

有兴趣的朋友,也可以到知识星球完美Excel社群查阅完整的内容和其他更丰富资源。

引言:本文为《Python for Excel》中第5章Chapter 5:Data Analysis with pandas的部分内容,主要讲解了pandas如何对数据进行描述性统计,并讲解了将数据聚合到子集的两种方法:groupby方法和pivot_table函数。

描述性统计和数据汇总

理解大型数据集的一种方法是计算整个数据集或有意义子集的描述性统计数据,如总和或均值。本节首先介绍pandas的工作原理,然后介绍将数据聚合到子集的两种方法:groupby方法和pivot_table函数。

描述性统计

描述性统计(descriptivestatistics)允许使用定量度量来汇总数据集。例如,数据点的数量是一个简单的描述性统计,而平均值,如均值、中位数或众数是其他流行的例子。数据框架和系列允许通过sum、mean和count等方法方便地访问描述性统计数据。默认情况下,它们返回沿轴axis=0的系列,这意味着可以获得列的统计信息:

如果需要每行的统计信息,使用axis参数:

默认情况下,缺失值不包括在描述性统计信息(如sum或mean)中,这与Excel处理空单元格的方式一致,因此在包含空单元格的区域内使用Excel的AVERAGE公式将获得与应用于具有相同数字和NaN值(而不是空单元格)的系列的mean方法相同的结果。

在数据框架的所有行中获取统计信息有时不够好,你需要更细粒度的信息,例如,每个类别的均值,这是下面的内容。

分组

再次使用我们的示例数据框架df,让我们找出每个大陆的平均分数。为此,首先按洲对行进行分组,然后应用mean方法,该方法将计算每组的均值,自动排除所有非数字列:

如果包含多个列,则生成的数据框架将具有层次索引,即我们前面遇到的多重索引:

可以使用pandas提供的大多数描述性统计信息,而不是mean,如果想使用自己的函数,使用agg方法。例如,下面是如何获得每组最大值和最小值之间的差值:

df.groupby(["continent"]).agg(lambdax: x.max() - x.min())

在Excel中获取每个组的统计信息的常用方法是使用透视表。它们引入了第二个维度,可以从不同的角度查看数据。pandas还有一个数据透视表功能,将在下面介绍。

透视表和熔解

如果在Excel中使用透视表,应用pandas的pivot_table函数不会有问题,因为它的工作方式基本相同。下面的数据框架中的数据的组织方式与数据库中记录的典型存储方式类似,每行显示特定地区指定水果的销售交易:

要创建数据透视表,将数据框架作为第一个参数提供给pivot_table函数。index和columns分别定义数据框架的哪一列将成为透视表的行和列标签。values将通过使用aggfunc聚合到结果数据框架的数据部分,aggfunc是一个可以作为字符串或NumPyufunc提供的函数。最后,margins与Excel中的总计(GrandTotal)相对应,即如果不使用margins和margins_name方式,则Total列和行将不会显示:

总之,数据透视意味着获取列(在本例中为Region)的唯一值,并将其转换为透视表的列标题,从而聚合来自另一列的值。这使得跨感兴趣的维度读取摘要信息变得容易。在我们的数据透视表中,会立即看到,在北部地区没有苹果销售,而在南部地区,大部分收入来自橙子。如果要反过来将列标题转换为单个列的值,使用melt。从这个意义上说,melt与pivot_table函数相反:

这里,提供了透视表作为输入,但使用iloc来去除所有的汇总行和列。同时重置了索引,以便所有信息都可以作为常规列使用。然后,提供id_vars来指示标识符,并提供value_vars来定义“非透视表(unpivot)”的列。如果希望准备数据,以便将其存储回需要此格式的数据库,则熔解(melting)非常有用。

使用聚合统计数据有助于理解数据,但没有人喜欢阅读一整页数字。为了使信息易于理解,没有什么比创建可视化效果更好的了,这是下一个要介绍的主题。虽然Excel使用术语图表(charts),但pandas通常将其称为绘图(plots)。在本书中会交替使用这些术语。

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

本文分享自 完美Excel 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档