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