📜  pandas 按多列分组并计数 - Python (1)

📅  最后修改于: 2023-12-03 15:33:24.541000             🧑  作者: Mango

Pandas 按多列分组并计数

当我们需要对数据进行分组并计算频次时,通常会用到 Pandas 中的 groupby 方法。但是当需要按照多列进行分组时,我们该如何操作呢?本文将介绍如何使用 Pandas 按多列分组并计数。

背景

我们有一份销售数据表格,其中包含以下几个字段:销售日期(Date)、销售员(Salesman)、产品名称(Product)和销售数量(Quantity)。我们希望按照销售日期和销售员对产品进行分组,并计算每组的销售数量。

数据准备

首先,我们需要准备一份数据。本文使用 Pandas 中的 DataFrame 类来创建数据。以下是代码片段:

import pandas as pd

sales_data = {
    'Date': ['2022-01-01', '2022-01-02', '2022-01-02', '2022-01-03', '2022-01-03'],
    'Salesman': ['Alice', 'Alice', 'Bob', 'Bob', 'Bob'],
    'Product': ['A', 'B', 'A', 'B', 'C'],
    'Quantity': [7, 2, 5, 10, 8]
}

df = pd.DataFrame(sales_data)
分组并计数

我们可以使用 Pandas 中的 groupby 方法进行分组操作。以下是代码片段:

grouped = df.groupby(['Date', 'Salesman', 'Product']).sum()
print(grouped)

groupby 方法接收一个列表作为参数,参数中的每个元素是一个需要进行分组的字段。在本文中,我们需要按照销售日期、销售员和产品名称三个字段进行分组,因此将这三个字段都加入到了列表中。sum 方法用于计算每组的销售数量之和。

分组之后,我们可以得到如下结果:

                        Quantity
Date       Salesman Product         
2022-01-01 Alice    A             7
2022-01-02 Alice    B             2
           Bob      A             5
2022-01-03 Bob      B            10
                    C             8

我们可以看到,按照销售日期、销售员和产品名称进行分组后,每组销售数量的和均被计算了出来。

结语

本文介绍了如何使用 Pandas 按照多列对数据进行分组并计数。groupby 方法在数据分析中是一个比较常见的方法,掌握它可以提高我们的数据处理效率。