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