Reputation: 198
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.
Upvotes: 1
Views: 878
Reputation: 24304
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
Upvotes: 2