📅  最后修改于: 2023-12-03 15:39:47.641000             🧑  作者: Mango
在使用 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 |
现在,我们需要按照城市和年份这两个唯一属性进行分组。可以使用 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 库按照多个唯一属性进行分组,并对分组后的数据进行聚合统计。这是进行数据分析时必不可少的基本操作,掌握这些操作将对日常工作和学习具有很大的帮助。