在Pandas中,可以使用groupby方法对数据进行分组并对每个组应用一些聚合函数,例如sum、mean、max等。有时候,我们想要添加组级汇总统计作为一个新的列,以便更好地了解每个组的情况。下面是在Pandas中添加组级汇总统计作为一个新的列的详细攻略:
1. 读取数据并进行分组
首先,我们需要读取数据并进行分组。这里我们使用Pandas自带的titanic数据集作为示例数据,以“性别”为关键字进行分组:
import pandas as pd
# 读取数据
df = pd.read_csv('titanic.csv')
# 分组
groups = df.groupby('Sex')
上述代码将数据按照性别进行了分组,并保存在了groups变量中。
2. 添加组级汇总统计列
接下来,我们可以使用agg方法对每个组进行一些聚合操作,并将结果保存为新的列。在本例中,我们对每个组计算平均年龄、平均票价以及存活率,并将结果保存为新的列。
# 添加组级汇总统计列
df['age_mean'] = groups['Age'].agg('mean')
df['fare_mean'] = groups['Fare'].agg('mean')
df['survival_rate'] = groups['Survived'].agg('mean')
上述代码中,agg
方法中的参数可以是一个字符串、一个函数或一个函数组成的列表。在这里,我们使用了字符串'average'来计算平均值,使用'mean'来计算存活率。
3. 查看结果
最后,我们可以使用head
方法查看添加新列后的数据:
print(df.head())
运行上述代码,可以看到添加新列后的数据如下:
PassengerId | Survived | Pclass | Name | Sex | Age | SibSp | Parch | Ticket | Fare | Cabin | Embarked | age_mean | fare_mean | survival_rate | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | 0 | 3 | Braund, Mr. Owen Harris | male | 22.0 | 1 | 0 | A/5 21171 | 7.2500 | 0 | S | 30.7267 | 25.52389 | 0.188908 |
1 | 2 | 1 | 1 | Cumings, Mrs. John Bradley | female | 38.0 | 1 | 0 | PC 17599 | 71.2833 | C85 | C | 27.9157 | 44.47982 | 0.742038 |
2 | 3 | 1 | 3 | Heikkinen, Miss. Laina | female | 26.0 | 0 | 0 | STON/O2. 3101282 | 7.9250 | 0 | S | 27.9157 | 44.47982 | 0.742038 |
3 | 4 | 1 | 1 | Futrelle, Mrs. Jacques... | female | 35.0 | 1 | 0 | 113803 | 53.1000 | C123 | S | 27.9157 | 44.47982 | 0.742038 |
4 | 5 | 0 | 3 | Allen, Mr. William Henry | male | 35.0 | 0 | 0 | 373450 | 8.0500 | 0 | S | 30.7267 | 25.52389 | 0.188908 |
可以看到,新添加的列成功地显示了每个组的平均年龄、平均票价和存活率。
这就是在Pandas中添加组级汇总统计作为一个新的列的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何在Pandas中添加组级汇总统计作为一个新的列 - Python技术站