为什么不是所有的 groupby 操作都可以使用转换
以下代码可以工作:
但以下代码不行:
这样做的原因是应用和转换工作
apply
- apply() 方法将一个函数应用于 DataFrame 中的每个组。
- 该函数可以采用单个参数,即组,也可以采用多个参数,即组中的列。
- 函数可以返回一个值,或者它可以返回一个Series或DataFrame。
- 如果函数返回一个值,那么结果将是一个Series。
- 如果函数返回一个Series或DataFrame,那么结果将是DataFrame。
transform
- transform() 方法将函数应用于组中的每一行。
- 函数可以采用单个参数,即行,也可以采用多个参数,即行中的列row。
- 函数必须返回单个值。
- 函数的结果将是一个 Series。
在示例代码中,apply()方法用于计算每个组的 C 列和 D 列之间的差异的平均值。
- transform() 方法不能用于计算此值是因为该函数返回一个 Series,而不是单个值。
要使用 Transform() 方法计算每个组的 C 列和 D 列之间的差异的平均值,该函数必须修改为返回单个值。
- 这可以通过对函数返回的 Series 使用mean() 方法来完成。
- 以下代码显示了如何执行此操作:
以上是为什么 Transform 不适用于所有 Groupby 操作?的详细内容。更多信息请关注PHP中文网其他相关文章!