在Pandas中,可以使用groupby和聚合函数来快速计算数据集中的统计信息,而且还可以同时应用多个聚合函数。下面是在Pandas中结合groupby和多个聚合函数的完整攻略。
1. 导入数据
首先,我们要将数据导入Pandas中。这里以iris数据集为例。iris数据集包含了三种鸢尾花(setosa,versicolor和virginica)的花萼和花瓣的长度和宽度,并且每种鸢尾花有50个样本。
import pandas as pd
iris = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')
2. 以一个或多个列为分组依据
在使用聚合函数之前,我们需要将数据集以一个或多个列为分组依据。在这个例子中,我们以鸢尾花种类为分组依据。
iris_grouped = iris.groupby('species')
3. 结合多个聚合函数
接下来,我们可以使用多个聚合函数来计算统计信息。Pandas中有很多内置的聚合函数,如mean(平均值)、sum(总和)、max(最大值)和min(最小值)等。在这个例子中,我们将同时使用count(计数)、mean和std(标准差)聚合函数。
iris_grouped.agg({'sepal_length': ['count', 'mean', 'std'],
'sepal_width': ['count', 'mean', 'std'],
'petal_length': ['count', 'mean', 'std'],
'petal_width': ['count', 'mean', 'std']})
在这个例子中,我们将sepal_length、sepal_width、petal_length和petal_width四个列分别应用了count、mean和std这三个聚合函数。agg函数以一个字典的形式输入,字典的key为列名,value为一个包含了多个聚合函数的列表。
4. 结果分析
最后,我们可以看到每个分组的计数、平均值和标准差。这些统计信息可以帮助我们理解每种鸢尾花的花萼和花瓣大小的分布情况。
sepal_length sepal_width petal_length petal_width
count mean std count mean std count mean std count mean std
species
setosa 50 5.006 0.352490 50 3.418 0.381024 50 1.464 0.173511 50 0.244 0.107210
versicolor 50 5.936 0.516171 50 2.770 0.313798 50 4.260 0.469911 50 1.326 0.197753
virginica 50 6.588 0.635880 50 2.974 0.322497 50 5.552 0.551895 50 2.026 0.274650
从结果可以看出,setosa的花萼和花瓣都比较小,而virginica的花萼和花瓣都比较大,versicolor则位于中间。此外,我们还可以看到每个分组的计数,这是很有用的信息,因为我们可以知道每个分组的样本量。
以上就是在Pandas中结合groupby和多个聚合函数的完整攻略。通过这种方式,我们可以快速计算数据集中的统计信息,并且可以同时应用多个聚合函数。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何在Pandas中结合Groupby和多个聚合函数 - Python技术站