I need to find the largest value of a column dataframe ('BlockNumber') for each of my subjects and get all the correspondent rows of the dataframe. The code below works. However, I also want to get additionally all the dataframe rows correspondent to the previous 5 BlockNumbers of my nlargest, i.e: nlargest-5 < BlockNumber <= nlargest. For example, if a subject has a BlockNumber that goes until 100, I want to get all rows from BlockNumber 95 to 100. How do I define this in my lambda function?
max = df.groupby('subject').['BlockNumber'].apply(lambda x: x.nlargest(keep='all'))
question from:
https://stackoverflow.com/questions/66062233/apply-condition-to-n-largest-in-a-lambda-function-after-groupby 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…