Data used for this tutorial:
  • 本教程使用泰坦尼克号数据集,它以 CSV 格式存储。该数据包含以下数据列:

    • PassengerId:每位乘客的 ID。

    • Survived:乘客是否存活的指示。0 表示生存,1 表示死亡。

    • Pclass:3 个票务等级之一:1 等、2 等和 3 等。

    • Name:乘客姓名。

    • Sex:乘客性别。

    • Age:乘客年龄(以年为单位)。

    • SibSp:船上兄弟姐妹或配偶的数量。

    • Parch:船上父母或子女的数量。

    • Ticket:乘客的票号。

    • Fare:指示票价。

    • Cabin:乘客的客舱号。

    • Embarked:登船港口。

    To raw data

如何计算汇总统计信息#

汇总统计信息#

../../_images/06_aggregate.svg
  • 泰坦尼克号乘客的平均年龄是多少?

有不同的统计信息可供选择,并可应用于包含数值数据的列。操作通常会排除缺失数据,并默认跨行操作。

../../_images/06_reduction.svg
  • 泰坦尼克号乘客的中位年龄和票价是多少?

    应用于 DataFrame 中多个列的统计信息(选择两列会返回一个 DataFrame,请参阅 subset data tutorial )会为每个数值列计算。

聚合统计信息可以同时为多个列计算。还记得 first tutorial 中的 describe 函数吗?

除了预定义的统计信息,还可以使用 DataFrame.agg() 方法为给定列定义特定的聚合统计信息组合:

To user guide

有关描述性统计信息的详细信息,请参阅用户指南的 descriptive statistics 部分。

按类别分组的汇总统计信息#

../../_images/06_groupby.svg
  • 男性与女性泰坦尼克号乘客的平均年龄是多少?

    由于我们感兴趣的是每个性别的平均年龄,因此首先对此两列进行子选择:titanic[["Sex", "Age"]]。接下来,在 Sex 列上应用 groupby() 方法,为每个类别创建一个组。计算并返回*每个性别的*平均年龄。

计算*一列中每个类别的*给定统计信息(例如,而是“Age”列的``mean``)可以归纳为一种常见的模式。groupby 方法用于支持此类操作。这符合更通用的“split-apply-combine”模式:

  • Split 将数据分成组

  • Apply 对每个组独立应用一个函数

  • Combine 将结果组合成一个数据结构

apply 和 combine 步骤通常在 pandas 中一起完成。

在前面的示例中,我们首先显式选择了 2 列。如果没有,则通过传递 numeric_only=Truemean 方法应用于包含数值列的每一列:

计算 Pclass 的平均值没有多大意义。如果我们只对每个性别的平均年龄感兴趣,那么也可以在分组数据上支持列的选择(以及通常的方括号 []):

../../_images/06_groupby_select_detail.svg

备注

Pclass 列包含数值数据,但实际上代表 3 个类别(或因子),分别标记为‘1’、‘2’和‘3’。计算这些数据的统计信息没有多大意义。因此,pandas 提供了一个 Categorical 数据类型来处理这类数据。有关详细信息,请参阅用户指南的 类别数据 部分。

  • 计算每个性别与客舱组合的平均票价是多少?

    分组可以同时按多个列进行。将列名作为列表提供给 groupby() 方法。

To user guide

有关拆分-应用-合并方法的完整描述,请参阅用户指南的 groupby operations 部分。

按类别计算记录数#

../../_images/06_valuecounts.svg
  • 计算每个客舱类别的乘客数量是多少?

    value_counts() 方法计算列中每个类别的记录数。

该函数是一个快捷方式,因为它实际上是分组操作,并计算每个组内的记录数:

备注

sizecount 都可以与 groupby 结合使用。size 包括 NaN 值,仅提供行数(表的size),而 count 则排除缺失值。在 value_counts 方法中,使用 dropna 参数来包含或排除 NaN 值。

To user guide

用户指南有一个专门介绍 value_counts 的部分,请参阅 discretization 页面。

REMEMBER

  • 聚合统计可以针对整个列或行计算。

  • groupby 提供了*拆分-应用-合并*模式的强大功能。

  • value_counts 是一个方便的快捷方式,用于计算变量每个类别中的条目数。

To user guide

有关拆分-应用-合并方法的完整描述,请参阅有关 groupby operations 的用户指南页面。