I have a dataframe that contains many rows, and a condition that is checked for each row and saved as a boolean in a column named condition. If this condition is False for any row within a group, I want to create a new column that is set to False for the whole group, and to True if the condition for every row within the group is set to True.
The final dataframe should look like this:
group condition final_condition 0 1 False False 1 1 False False 2 1 True False 3 2 True True 4 2 True True 5 3 True False 6 3 False False
I have tried many different things but can’t find a solution, so any help is appreciated.
Advertisement
Answer
use groupby()+transform():
df['final_condition']=df.groupby('group')['condition'].transform('all')
output of df:
group condition final_condition 0 1 False False 1 1 False False 2 1 True False 3 2 True True 4 2 True True 5 3 True False 6 3 False False