按组分组并找出与组的最小值的差:Pandas

5

我有一个类似以下的分组,如何知道每个观测值与它所在组的最小值之间的差异:

GROUP VALUE
 1     5
 2     2
 1     10
 2     20
 1     7

因此,我的期望输出应该是这样的:
GROUP VALUE diff
 1     5    3
 2     2    0
 1     10   5
 2     20  18
 1     7    5

如何借助pandas实现这一目标?

感谢所有的帮助。

1个回答

5

我认为你需要使用GroupBy.transform函数来进行减法操作:

df['diff'] = df['VALUE'] - df.groupby('GROUP')['VALUE'].transform('min')
print (df)
   GROUP  VALUE  diff
0      1      5     0
1      2      2     0
2      1     10     5
3      2     20    18
4      1      7     2

1
如果我的函数有两个输出,transform 能否帮助我创建两列? - Manu Sharma
@ManuSharma - 你能多解释一下吗? - jezrael
1
@jezrael- 刚刚发布了带有详细信息的问题。 - Manu Sharma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接