📜  按 2 个唯一属性 pandas 分组 - Python (1)

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

按 2 个唯一属性 pandas 分组 - Python

在使用 Pandas 进行数据分析时,经常需要对数据进行分组和聚合操作。本文将介绍如何按照多个唯一属性进行分组,并对分组后的数据进行聚合统计。

初步处理数据

首先,我们需要导入 Pandas 库和一些示例数据。本文示例数据为人口数据,共包含 5 个属性:城市、州、年份、性别和人口数量。

import pandas as pd

data = {
    'City': ['Los Angeles', 'Los Angeles', 'Los Angeles', 'New York', 'New York'],
    'State': ['CA', 'CA', 'CA', 'NY', 'NY'],
    'Year': [2020, 2019, 2018, 2020, 2019],
    'Gender': ['Male', 'Female', 'Male', 'Female', 'Male'],
    'Population': [5000000, 5200000, 4900000, 8000000, 7800000]
}

df = pd.DataFrame(data)

执行以上代码,可以得到以下数据集:

| City | State | Year | Gender | Population | | ---- | ----- | ---- | ------ | ---------- | | Los Angeles | CA | 2020 | Male | 5000000 | | Los Angeles | CA | 2019 | Female | 5200000 | | Los Angeles | CA | 2018 | Male | 4900000 | | New York | NY | 2020 | Female | 8000000 | | New York | NY | 2019 | Male | 7800000 |

按 2 个唯一属性分组

现在,我们需要按照城市和年份这两个唯一属性进行分组。可以使用 Pandas 库的 groupby() 方法完成分组操作。

grouped = df.groupby(['City', 'Year'])

执行以上代码,可以得到一个 DataFrameGroupBy 对象。此时,数据集已经被按照指定的唯一属性分组。

对分组后的数据进行聚合统计

接下来,我们需要对分组后的数据进行聚合统计,比如计算每个城市在每年的总人口数量。这可以使用 agg() 方法完成。

result = grouped.agg({'Population': 'sum'})

执行以上代码,可以得到以下数据集:

| City | Year | Population | | ---- | ---- | ---------- | | Los Angeles | 2018 | 4900000 | | Los Angeles | 2019 | 5200000 | | Los Angeles | 2020 | 5000000 | | New York | 2019 | 7800000 | | New York | 2020 | 8000000 |

总结

本文介绍了如何使用 Pandas 库按照多个唯一属性进行分组,并对分组后的数据进行聚合统计。这是进行数据分析时必不可少的基本操作,掌握这些操作将对日常工作和学习具有很大的帮助。