Pandas Groupby —解释

阿里云教程2个月前发布 im6DD
21 0 0

如何有效利用熊猫的Groupby功能

Pandas是一个超级强劲的Python数据分析库,可加快项目的预处理步骤。 在本文中,我将通过许多示例介绍Pandas的groupby功能,这些示例可协助您全面了解该功能。

Pandas Groupby —解释

> Photo by Markus Spiske on Unsplash

Groupby是一种通用且易于使用的功能,有助于获得数据概览。 它使探索数据集和揭示变量之间的潜在关系变得更加容易。

最好通过示例解释Groupby。 我将使用Kaggle上可用的客户流失数据集。 我只参与了其中的一部分,足以显示groupby函数的每个细节。

与往常一样,我们从导入numpy和pandas开始:

import pandas as pd
import numpy as np

让我们快速浏览一下数据集:

df.shape(7043, 9)
df.head()

Pandas Groupby —解释

数据集包括8个有关客户以及客户是否离职(即离开公司)的功能。

在将groupby函数应用于数据集之前,让我们看一个直观的示例。 可视化始终是解释概念的好方法。 假设我们有两个功能。 一种是颜色,这是一种分类特征,另一种是数字特征,即值。 我们要按颜色对值进行分组,并计算不同颜色的值的平均值(或任何其他聚合度)。 然后最后根据平均值对颜色进行排序。 下图显示了此过程的步骤。

Pandas Groupby —解释

让我们回到我们的数据集。 要查看性别在搅动中是否起作用,我们可以选择性别和用户流失列以及分组性别。 然后我们可以应用均值函数。

Pandas Groupby —解释

男性和女性的流失率超级接近。

如果我们不选择列,而是直接将groupby应用于数据框,则将根据聚合函数计算所有数字列:

Pandas Groupby —解释

男性和女性的平均所有数字特征似乎都大致一样。

我们还可以通过添加sort_values函数对结果进行排序:

Pandas Groupby —解释

默认情况下,它以升序排序。 我们可以通过将ascending参数设置为false来更改它。

Pandas Groupby —解释

具有光纤互联网服务的客户比其他客户更容易流失。

我们可以通过在方括号中传递列名称来基于多个列进行分组:

Pandas Groupby —解释

“合同”列具有3个类别,”老年人”列具有2个类别,因此我们共有6个组。 对于每个组,计算平均”搅动”率。

让我们看看每月的费用是否取决于合同类型。 我们需要从数据聚焦获取”合同”和”每月费用”列,并按”合同”分组,并将均值函数应用于结果。

Pandas Groupby —解释

正如预期的那样,长期合同的平均每月费用较低。

我们可以根据任务应用其他aggeragate函数。 例如,我们可能希望查看不同互联网服务类型的合同类型分布。 由于这两个都是分类变量,因此我们可以应用count函数:

Pandas Groupby —解释

由于我们应用了计数功能,因此返回的数据框包括所有其他列,由于无论数据框如何,它都可以计数值。 在所有列上,值的数量都是一样的,因此我们只需选择一列即可查看值。 关于Pandas的一件好事是,完成一项任务一般不只一种方法。

Pandas Groupby —解释

Pandas Groupby —解释

Pandas Groupby —解释

这三行返回以下输出:

Pandas Groupby —解释

您还可以执行以下一样任务,但是返回的对象将是一个数据框:

Pandas Groupby —解释

请注意,某些聚合函数需要数值。 例如,如果我们只有分类变量并尝试应用均值函数,则会收到错误消息:

Pandas Groupby —解释

Pandas Groupby —解释

我们可以使示例多样化,但基本逻辑是一样的。 Groupby函数可以用作探索性数据分析过程中的第一个函数,由于它使我们对数据聚焦变量之间的关系有了一个了解。

as_index参数

groupby函数中的变量作为结果数据帧的索引返回。 我们可以通过将as_index参数设置为false来更改它。

Pandas Groupby —解释

Pandas Groupby —解释

多种聚合功能

在某些情况下,应用groupby函数后,您可能希望同时查看不同组的计数和均值。 如果类别分布不平衡,则仅检查均值可能会导致错误的假设。 您可以对groupby的结果应用多个聚合函数。 它们不仅限于计数和均值,还可以将函数名称作为参数传递给agg()函数。

Pandas Groupby —解释

谢谢阅读。 如果您有任何反馈意见,请告知我。

(本文翻译自Soner Yildirim的文章《Pandas Groupby — Explained》,参考:
https://towardsdatascience.com/pandas-groupby-explained-453692519d0)

© 版权声明

相关文章

暂无评论

none
暂无评论...