首页  >  文章  >  后端开发  >  应用与转换:什么时候应该在 Pandas Groupby 中使用 Which?

应用与转换:什么时候应该在 Pandas Groupby 中使用 Which?

Susan Sarandon
Susan Sarandon原创
2024-11-11 10:20:03394浏览

 Apply vs. Transform: When Should You Use Which in Pandas Groupby?

你应该使用Apply还是Transform?

概述:

在 Pandas 中,groupby() 方法提供了两个选项来操作按特定列分组的数据:应用()和变换()。这些方法在输入、输出和行为方面有所不同。

键差异:

功能 应用 变换
Feature Apply Transform
Input: Passes DataFrame containing all columns for each group Passes individual Series for each column in each group
Output: Can return scalars, Series, DataFrames, or other objects Must return a sequence (Series, array, or list) with the same length as the group
Behavior: Operates on the entire DataFrame within each group Operates on a single column at a time
输入:

传递包含每个组的所有列的 DataFrame 传递每个组中每一列的单独系列group
输出: 可以返回标量、Series、DataFrames或其他对象 必须返回与长度相同的序列(系列、数组或列表) group
行为:
    对每个组内的整个 DataFrame 进行操作 对单个列进行操作一次
  • 何时使用应用:
  • 当您需要将自定义函数应用于每个组内的整个 DataFrame 时。这允许复杂的逐行处理并返回具有相同值的 DataFrame行数为输入。

    df.groupby('State').apply(lambda x: pd.DataFrame({'Average': x.mean()}))

    示例:

    • 何时使用变换:

    当您需要在每个列中逐列应用自定义函数这允许您操作特定列而不影响整个 DataFrame。

    df.groupby('State').transform(lambda x: x - x.mean())

    示例:

    • 附加说明:
    • 转换方法必须返回与组长度相同的序列,否则将引发错误。
    从变换函数返回单个标量将导致该标量应用于组中的每一行。 有时,在自定义函数中打印或显示传递的对象有助于了解您正在使用的内容。

    以上是应用与转换:什么时候应该在 Pandas Groupby 中使用 Which?的详细内容。更多信息请关注PHP中文网其他相关文章!

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