在DataFrame上使用groupby时,apply和transform有清楚的特征:
输入:
输出:
考虑使用自定义函数subtract_two从'b'中减去列'a':
def subtract_two(x): return x['a'] - x['b']
1。应用:
使用 apply,我们可以计算每个组的 'a' 和 'b' 的差异,返回一个系列:
df.groupby('A').apply(subtract_two)
2。变换:
尝试使用变换将导致 KeyError,因为变换需要与组长度相同的序列:
df.groupby('A').transform(subtract_two) # KeyError: 'a'
要使用变换进行减法,我们可以从自定义函数返回一个标量,并将其应用于group:
def subtract_two_scalar(x): return (x['a'] - x['b']).mean() df.groupby('A').transform(subtract_two_scalar)
这将返回一个系列,其中包含每个组的平均差。
以上是如何使用'apply”和'transform”通过 Groupby 进行列减法和平均值计算?的详细内容。更多信息请关注PHP中文网其他相关文章!