Id condition2 score
A pass 0
A fail 0
B pass 0
B level_1 0
B fail 0
C fail 0
D fail 0
预期的 Dataframe :
Id condition2 score
A pass 1
A fail 1
B pass 1
B level_1 1
B fail 1
C fail 0
D fail 0
如果condition 2在任何一行中具有pass或level_1,则对于具有唯一Id的每行,将score标记为1。
df['score'] = df.groupby('Id')['condition2'].transform(lambda x: x.eq('pass').any().astype(int))
要对上述代码进行哪些修改
2条答案
按热度按时间bf1o4zei1#
让我们使用
isin
来查找具有pass
或level_1
的id:如果您仍然希望使用groupby和transform..,以下是对现有方法的修正:
第一次
olhwl3o22#
另一种可能的解决方案
list Comprehension
:输出量: