打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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

引言:本文为《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)。在本书中会交替使用这些术语。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料,并通过社群加入专门的微信讨论群,更方便交流。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
从Excel进阶到Python:掌握数据透视表
python数据分析透视表,定制你的分析计算需求!
在pandas中使用数据透视表
手把手教你做一个“渣”数据师,用Python代替老情人Excel
Excel怎么用函数统计单列里多个条件下不重复计数?
对比Excel,学习pandas数据透视表
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服