如何僅選擇val大于 5的行,直到每個id示例數(shù)據(jù)框中的最后一條記錄?df = pd.DataFrame({'id': [1,1,1,1,1,1,2,2,2,2,2,2], 'val': [10,1,1,10,20,30,1,1,1,12,17,28]})id val1 10 <- meets the condition, but condition fails in the next 2 rows1 11 11 10 <- meets the condition until the end of this id1 201 302 12 12 12 122 172 28期望的輸出:id val1 101 201 302 122 172 28如果只有一個 id,我可以用一些難看的代碼來做到這一點,但我不知道如何將類似的邏輯應(yīng)用于所有組:df = pd.DataFrame({'id': [1,1,1,1,1,1], 'val': [10,1,1,10,20,30]})# create groups at breakpoints where condition is no longer metg = df.groupby((df['val'] > 5).cumsum())# find last grouplabel = max(list(g.groups.keys()))result = df.loc[g.groups[label]._data]# result still includes some rows where the condition is not metresult = result[result > 5]
添加回答
舉報
0/150
提交
取消