为了账号安全,请及时绑定邮箱和手机立即绑定

Python Dataframe:根据条件为列分配值?

Python Dataframe:根据条件为列分配值?

墨色风雨 2024-01-24 15:48:57
我有一个 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


查看完整回答
反对 回复 2024-01-24
?
波斯汪

TA贡献1811条经验 获得超4个赞

另一种方法是按名称分组并查找名称是否作为唯一状态出现。


df.groupby('name')['status'].apply(lambda x: (x=='present').all())




    name

    anthony    False

    donny      False

    mason       True

    paul        True


查看完整回答
反对 回复 2024-01-24
  • 2 回答
  • 0 关注
  • 26 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信