I have this DataFrame:
pd.DataFrame(
{'name': ['Adam', 'Adam', 'Adam', 'Bill', 'Bill', 'Charlie', 'Charlie', 'Charlie', 'Charlie'],
'message': ['start', 'stuck', 'finish', 'start', 'stuck', 'start', 'stuck', 'finish', 'finish']}
)
and I want to drop all rows with message "stuck" from all rows that don't have a message "finish":
pd.DataFrame(
{'name': ['Adam', 'Adam', 'Bill', 'Bill', 'Charlie', 'Charlie', 'Charlie'],
'message': ['start', 'finish', 'start', 'stuck', 'start', 'finish', 'finish']}
)
So Bill never "finished", so his message will remain "stuck".