在 groupby 操作中将多个函数应用于多个列是数据分析中的常见任务。 Pandas 提供了多种方法来执行此任务,包括使用函数字典或应用返回多个系列的自定义函数。
对于 Series groupby 对象,您可以应用使用以输出列名作为键的字典的多个函数:
group = pd.groupby("column")
group['column'].agg({'func1': np.mean, 'func2': np.std})
但是,此方法不能在 DataFrame 上使用groupby 对象。
apply 方法允许您应用对组数据执行多项计算的自定义函数。该函数应返回包含结果的系列,使用索引来标记新列。
def func(group_data): return pd.Series({ 'func1': group_data['column1'].mean(), 'func2': group_data['column2'].std(), }) group.apply(func)
您还可以定义一个自定义聚合函数,该函数利用传递给 apply 方法的 DataFrame 的:
def agg_func(group_data): return group_data.agg({'column1': np.mean, 'column2': np.std}) group.agg(agg_func)
对于函数依赖于 groupby 对象中的其他列,您可以使用 ix 方法来访问这些列。但是,请注意,此方法已弃用,应替换为 loc:
def func(group_data): return group_data.mean().ix['column1']
根据复杂程度,可以使用多种方法来实现对 pandas groupby 对象执行复杂聚合以及所应用功能的依赖性。通过利用 apply 方法或创建自定义聚合函数,您可以高效地执行这些操作并将结果合并到单个 DataFrame 中。
以上是如何将多个函数应用于 Pandas 中的多个 Groupby 列?的详细内容。更多信息请关注PHP中文网其他相关文章!