使用条件迭代数据框

青葱年少 python 214

原文标题iterate over dataframe with condition

假设一个数据框如下:

df=pd.DataFrame({'dept':['dept1','dept2','dept3','dept4','dept5'],
                 'room1':['0','1','1','NA','1'],
                 'room2':['1','0','NA','1','1'],
                 'room3':['0','0','1','NA','1'],
                 'room4':['1','NA','1','1','1'],
                 'count':['4','3','3','2','4']}


        dept  room1  room2 room3  room4 count
0      dept1    0      1     0      1    4
1      dept2    1      0     0      NA   3
2      dept3    1      NA    1      1    3
3      dept4    NA     1    NA      1    2
4      dept5    1      1    1       1    4

如何遍历数据框以检查每行中不为 NULL 的单元格是否为 0 或 1?

我试过iteritem()但是当我尝试使用 if 语句检查值是 1 还是 0 系统崩溃时,它也没有返回正确的答案。

预期结果 :

突出显示最后一条记录,因为所有房间都有 value1 所以部门被锁定

这可能吗?谢谢。

原文链接:https://stackoverflow.com//questions/71962435/iterate-over-dataframe-with-condition

回复

我来回复
  • BENY的头像
    BENY 评论

    你可以检查

    cond = df.filter(like='room').eq(1).all(1)
    Out[428]: 
    0    False
    1    False
    2    False
    3    False
    4     True
    dtype: bool
    #df[cond]
    
    2年前 0条评论