分组并查找组最小值的差异:Pandas

Man*_*rma 5 python group-by pandas

我有一个像下面这样的组,我怎样才能知道每个观察值与其组最小值的差异

GROUP VALUE
 1     5
 2     2
 1     10
 2     20
 1     7
Run Code Online (Sandbox Code Playgroud)

所以,我想要的输出应该是这样的

GROUP VALUE diff
 1     5    3
 2     2    0
 1     10   5
 2     20  18
 1     7    5
Run Code Online (Sandbox Code Playgroud)

我怎样才能在 pandas 的帮助下实现它

感谢所有的帮助

jez*_*ael 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
Run Code Online (Sandbox Code Playgroud)