Python 根据条件删除行

Python 根据条件删除行,python,pandas,analysis,Python,Pandas,Analysis,我正在处理订单流程数据集。它包含两列,订单ID和交易阶段。在订单流程中,在首次预订订单之前和预订订单之后可以执行几个步骤 在我当前的问题中,我希望保留所有行,直到它达到approved。应删除批准后的任何其他行。我只对审批前发生的事情感兴趣,所以审批后我不需要任何信息 Order_ID Tranaction_Phase 529334333 Quote 529334333 Deal approved 529334333

我正在处理订单流程数据集。它包含两列,订单ID和交易阶段。在订单流程中,在首次预订订单之前和预订订单之后可以执行几个步骤

在我当前的问题中,我希望保留所有行,直到它达到approved。应删除批准后的任何其他行。我只对审批前发生的事情感兴趣,所以审批后我不需要任何信息

 Order_ID         Tranaction_Phase 
 529334333         Quote 
 529334333         Deal approved 
 529334333         Rejected deal 
 470660845         Quote
 470660845         Deal approved 
 470660845         Reject Deal 
我希望我的输出如下所示:

 Order_ID         Tranaction_Phase 
 529334333         Quote 
 529334333         Deal approved 
 4706608452        Quote
 4706608452        Deal approved 

谁能帮我指引正确的方向:包、逻辑、文档等等。我正在使用python技术来完成这一点。

df[df.index
df[df]。index@MaxU已编辑~:@MaxU已编辑~:)
In [36]: df.groupby('Order_ID', group_keys=False) \
           .apply(lambda x: x.loc[:x['Tranaction_Phase'].eq('Deal approved').idxmax()])
Out[36]:
    Order_ID Tranaction_Phase
3  470660845            Quote
4  470660845    Deal approved
0  529334333            Quote
1  529334333    Deal approved
df[df.index<=df.groupby('Order_ID')['Tranaction_Phase'].transform(lambda x:x.index[x=='Dealapproved'])]
Out[649]: 
    Order_ID Tranaction_Phase
0  529334333            Quote
1  529334333     Dealapproved
3  470660845            Quote
4  470660845     Dealapproved