我希望每个组都保持半值,如下所示。
ID number
1 50
1 49
1 48
1 45
2 47
2 40
2 31
3 60
3 51
示例输出
1 48
2 40
3 60
一个班轮:
df[df[::-1].groupby('ID').cumcount()[::-1]==1]
输出:
ID number
2 1 48
5 2 40
7 3 60
与Groupby.nth
一起使用-2
:
df.groupby('ID')['number'].nth(-2)
[out]
ID
1 48
2 40
3 60
Name: number, dtype: int64