如何在 Pandas 中组合 Groupby 和多个聚合函数?
groupby()和aggregate()是pandas库中可用的两个函数。
groupby() 函数
groupby() 函数允许您按一列或多列对 DataFrame 进行分组。它在内部对 dataframe 对象 执行操作组合,例如拆分对象、应用函数以及组合结果
此函数返回 DataFrameGroupBy 对象,其中包含有关组的信息。一旦我们获得了这个对象,我们就可以执行各种操作,例如计算平均值、计算总和和平均值等...
简介
以下是groupby()函数的语法-
DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, Observed=False, dropna=True); 前>aggregate() 函数
aggregate() 函数用于在整个 DataFrame 或 DataFrame 中的特定列上的特定轴上应用一个或多个操作(函数)。这些数学运算用于总结和计算给定数据集的统计数据。 agg 是aggregate() 函数的别名。
简介
以下是groupby的语法-
DataFrame .aggregate ( func = None , axis = 0 , * args , ** kwargs ) 前>哪里,
func - 这是用于计算聚合值的函数或函数列表。
axis - 该值指定轴(列:0 或"索引",行 - 1 或"列")。
*args- 传递给 func 的位置参数
**kwargs - 传递给 func 的关键字参数
组合 Groupby 和多个聚合函数
我们可以使用aggregate()或agg()函数对Groupby子句的结果执行多个聚合函数,例如sum、mean、min max等,如下所示 -
pandas.groupby(column_name).agg(column) 前>免费
在下面的示例中,我们使用 Pandas 中的 groupby 函数按列名称 Fruits 对 Dataframe 进行分组,并对两个不同的列"Dozens"和"Cost"执行聚合操作mean这将返回 groupby 和 aggregate 函数的组合输出。
import pandas as pd data = {'Fruits': ['Papaya','Apple','Banana','Grapes','Orange','Watermelon'], 'Dozens': [25, 30, 35, 27, 32, 37], 'Cost': [500, 6000, 270, 5500, 6500, 7500]} df = pd.DataFrame(data) grouped_df = df.groupby('Fruits').agg({'Dozens': ['mean'], 'Cost': ['mean']}) print(grouped_df)输出
以下是 groupby 和 aggregate 函数组合的输出。
Dozens Cost mean mean Fruits Apple 30.0 6000.0 Banana 35.0 270.0 Grapes 27.0 5500.0 Orange 32.0 6500.0 Papaya 25.0 500.0 Watermelon 37.0 7500.0示例
在下面的示例中,我们考虑相同的数据集并将其按同一列(水果)进行分组,并计算"最小值"、"最大值"、"总和"、"计数"、平均值" 使用 agg() 函数计算 'cost' 列的值 –
import pandas as pd data = {'Fruits': ['Papaya','Apple','Banana','Grapes','Orange','Watermelon'], 'Dozens': [25, 30, 35, 27, 32, 37], 'Cost': [500, 6000, 270, 5500, 6500, 7500]} df = pd.DataFrame(data) grouped_df = df.groupby('Fruits').Cost.agg(["min", "max", "sum", "count", "mean"]) print(grouped_df)输出
当我们运行上面的代码时,将显示以下输出 -
min max sum count mean Fruits Apple 6000 6000 6000 1 6000.0 Banana 270 270 270 1 270.0 Grapes 5500 5500 5500 1 5500.0 Orange 6500 6500 6500 1 6500.0 Papaya 500 500 500 1 500.0 Watermelon 7500 7500 7500 1 7500.0示例
我们来看另一个结合groupby和聚合函数的例子。这里我们考虑数据集"titanic.csv"数据集,并对'Survived'和'Pclass'列执行"mean"、"max"、"sum"操作,并按'fare'列分组 –
import pandas as pd data = pd.read_csv("https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv") data_groupby = data.groupby('Fare') data_agg = data_groupby.agg({'Survived':["mean", "max", "sum"],'Pclass':["min", "max", "sum"]}) print(data_agg)输出
当我们运行上述代码时,将出现以下输出生成 -Survived Pclass mean max sum min max sum Fare 0.0000 0.066667 1 1 1 3 29 4.0125 0.000000 0 0 3 3 3 5.0000 0.000000 0 0 1 1 1 6.2375 0.000000 0 0 3 3 3 6.4375 0.000000 0 0 3 3 3 ... ... .. .. ... .. .. 227.5250 0.750000 1 3 1 1 4 247.5208 0.500000 1 1 1 1 2 262.3750 1.000000 1 2 1 1 2 263.0000 0.500000 1 2 1 1 4 512.3292 1.000000 1 3 1 1 3 [248 rows x 6 columns]
相关文章