Python 如何在DataFrame中查找并返回倒数第二个值

Python 如何在DataFrame中查找并返回倒数第二个值,python,pandas,dataframe,Python,Pandas,Dataframe,我正在寻找一种方法来查找数据帧中最后一个值。下面的脚本正确地查找max-value,但是,我需要找到max-1,所以如果版本为4,我需要在我的数据帧中找到版本3 df.groupby('ID').max()['version'] 在MySQL中,可以使用以下查询完成: "SELECT *, max(version) - 1 FROM product GROUP BY ID;" 但是,我认为max()-1之类的东西在熊猫身上不起作用。您能否给我一些提示,告诉我如何获得所需的

我正在寻找一种方法来查找数据帧中最后一个值。下面的脚本正确地查找max-value,但是,我需要找到max-1,所以如果版本为4,我需要在我的数据帧中找到版本3

df.groupby('ID').max()['version']
在MySQL中,可以使用以下查询完成:

"SELECT *, max(version) - 1 FROM product GROUP BY ID;"
但是,我认为max()-1之类的东西在熊猫身上不起作用。您能否给我一些提示,告诉我如何获得所需的值使用
升序=False
并通过
1
进行比较,最后通过以下方式进行筛选:

如果
版本
是整数:

df2 = df[df.groupby('ID')['version'].transform('max').sub(1).eq(df['version'])]

df2 = df2.drop_duplicates('ID')
df2 = df[df.groupby('ID')['version'].transform('max').sub(1).eq(df['version'])]

df2 = df2.drop_duplicates('ID')