我有一个 df ,其中name包含status存在和不存在作为值。 name status 0 anthony present 1 anthony absent 2 mason present 3 donny present 4 donny absent 5 donny absent 6 paul present 7 paul presentTrue or False我正在尝试为每个名字添加状态 - 。如果其中之一name的absent状态将为 False预期输出: name output 0 anthony False 1 mason True 2 donny False 3 paul True
2 回答

吃鸡游戏
TA贡献1829条经验 获得超7个赞
您可以比较status然后'present'通过以下方式获得最小值name:
# or `all()` instead of `min()`
df['status'].eq('present').groupby(df['name']).min()
输出:
name
anthony False
donny False
mason True
paul True
Name: status, dtype: bool

波斯汪
TA贡献1811条经验 获得超4个赞
另一种方法是按名称分组并查找名称是否作为唯一状态出现。
df.groupby('name')['status'].apply(lambda x: (x=='present').all())
name
anthony False
donny False
mason True
paul True
添加回答
举报
0/150
提交
取消