根据条件向 pandas df 添加新列
Adding new column to pandas df based on condition
我有以下数据集:
ID Asset Boolean
1 "A" True
1 "B" False
1 "B" False
2 "A" True
3 "A" True
3 "A" True
3 "B" False
3 "B" False
4 "A" True
4 "A" True
5 "A" True
5 "B" False
我想添加另一列,仅当列 Boolean
中的所有值对相同 ID
的计算结果为真时,该列才应计算为真。
所以像这样:
ID Asset Boolean Check
1 "A" True False
1 "B" False False
1 "B" False False
2 "A" True True
3 "A" True False
3 "A" True False
3 "B" False False
3 "B" False False
4 "A" True True
4 "A" True True
5 "A" True False
5 "B" False False
我想保留过滤器选项的原始数据集。
我不知道如何在考虑 ID 列的情况下遍历 Boolean
列。
你可以GroupBy
and transform
with all
:
df['Check'] = df.groupby('ID').Boolean.transform('all')
print(df)
ID Asset Boolean Check
0 1 A True False
1 1 B False False
2 1 B False False
3 2 A True True
4 3 A True False
5 3 A True False
6 3 B False False
7 3 B False False
8 4 A True True
9 4 A True True
10 5 A True False
11 5 B False False
我有以下数据集:
ID Asset Boolean
1 "A" True
1 "B" False
1 "B" False
2 "A" True
3 "A" True
3 "A" True
3 "B" False
3 "B" False
4 "A" True
4 "A" True
5 "A" True
5 "B" False
我想添加另一列,仅当列 Boolean
中的所有值对相同 ID
的计算结果为真时,该列才应计算为真。
所以像这样:
ID Asset Boolean Check
1 "A" True False
1 "B" False False
1 "B" False False
2 "A" True True
3 "A" True False
3 "A" True False
3 "B" False False
3 "B" False False
4 "A" True True
4 "A" True True
5 "A" True False
5 "B" False False
我想保留过滤器选项的原始数据集。
我不知道如何在考虑 ID 列的情况下遍历 Boolean
列。
你可以GroupBy
and transform
with all
:
df['Check'] = df.groupby('ID').Boolean.transform('all')
print(df)
ID Asset Boolean Check
0 1 A True False
1 1 B False False
2 1 B False False
3 2 A True True
4 3 A True False
5 3 A True False
6 3 B False False
7 3 B False False
8 4 A True True
9 4 A True True
10 5 A True False
11 5 B False False