首页 >后端开发 >Python教程 >如何将多个函数应用于 Pandas GroupBy DataFrame 中的多个列?

如何将多个函数应用于 Pandas GroupBy DataFrame 中的多个列?

Linda Hamilton
Linda Hamilton原创
2024-12-20 03:49:09643浏览

How Can I Apply Multiple Functions to Multiple Columns in a Pandas GroupBy DataFrame?

将多个函数应用于多个分组列

处理分组数据时,Pandas 中的 groupby 方法允许您同时应用多个函数一本字典。但是,这种方法仅适用于 Series groupby 对象。

如果您有一个 groupby DataFrame 并希望将函数应用于多个列,那么您将面临将列名称指定为字典中的键的挑战。此外,某些函数可能依赖于其他列,使得使用 agg 方法变得复杂。

以下是可用的选项:

使用 apply 方法

apply 方法隐式地将 DataFrame 传递给应用函数。这允许您同时处理多个列。使用字典将列名称映射到聚合函数:

df.groupby('group').apply({'a': ['sum', 'max'], 'b': 'mean', 'c': 'sum', 'd': lambda x: x.max() - x.min()})

或者,您可以使用自定义函数返回一系列所有聚合:

def f(x):
    return pd.Series({'a_sum': x['a'].sum(), 'a_max': x['a'].max(), 'b_mean': x['b'].mean(), 'c_d_prodsum': (x['c'] * x['d']).sum()})

df.groupby('group').apply(f)

限制和替代方案

  • apply 方法迭代地将函数应用于每个group,这对于大型数据集来说可能会很慢。
  • 如果您需要不是内置 Pandas 函数的自定义聚合函数,您可能需要将 agg 方法与自定义 lambda 一起使用,或者对

总之,虽然 Pandas 没有内置方法将多个函数应用于 groupby DataFrame 中的特定列,但 apply 方法提供了适用于大多数场景的灵活且可定制的解决方案。对于涉及多个列和依赖项的复杂聚合,您可能需要探索替代方法或手动迭代分组对象。

以上是如何将多个函数应用于 Pandas GroupBy DataFrame 中的多个列?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn