Python 熊猫数据帧问题:Groupby显示最大值

Python 熊猫数据帧问题:Groupby显示最大值,python,pandas,dataframe,Python,Pandas,Dataframe,我在上一个问题上犯了一个小错误() 有没有可能得到这样的东西: label Val Results 0 a 2 6.0 1 a 2 6.0 2 b 6 10.0 3 a 8 3.0 4 c 14 8.0 5 c 14 8.0 6 b 16 2.0 7 b 18 3.0 8 c 22 3.0 如果没有零值,则相同距离的值应相同。如果需要用每组最后一个非0值替换0值,您可以将0替换为缺少的值并添

我在上一个问题上犯了一个小错误()

有没有可能得到这样的东西:


label   Val Results
0   a   2   6.0
1   a   2   6.0
2   b   6   10.0
3   a   8   3.0
4   c   14  8.0
5   c   14  8.0
6   b   16  2.0
7   b   18  3.0
8   c   22  3.0

如果没有零值,则相同距离的值应相同。

如果需要用每组最后一个非
0
值替换
0
值,您可以将
0
替换为缺少的值并添加:


label   Val Results
0   a   2   6.0
1   a   2   6.0
2   b   6   10.0
3   a   8   3.0
4   c   14  8.0
5   c   14  8.0
6   b   16  2.0
7   b   18  3.0
8   c   22  3.0
df['Results'] = (df.groupby(['label'])['Val']
                   .diff(-1)
                   .fillna(3)
                   .replace(0, np.nan)
                   .groupby(df['label'])
                   .bfill()
                   .abs())

print (df)
  label  Val  Results
0     a    2      6.0
1     a    2      6.0
2     b    6     10.0
3     a    8      3.0
4     c   14      8.0
5     c   14      8.0
6     b   16      2.0
7     b   18      3.0
8     c   22      3.0