在pandas数据框中计算特定值的数量

3

我需要在一个数据框中统计'No'出现的次数,并将该计数添加到名为'count'的单独列中。

例如:

 MachineName    Logs   Jobs   Performance
 121            Yes    No      Yes
 123            Yes    No      No
 126            No     No      No

输出:

 MachineName    Logs   Jobs   Performance   Count
 121            Yes    No      Yes          1
 123            Yes    No      No           2          
 126            No     No      No           3

我尝试了以下代码,但它并没有按预期运行。
 condition = (df[['Logs','Jobs','Performance']] == 'No').any(axis=0)

非常感谢您的帮助。


1个回答

4
使用sum函数,因为布尔掩码已转换为整数
df['Count'] = (df[['Logs','Jobs','Performance']] == 'No').sum(axis=1)

print (df)
   MachineName Logs Jobs Performance  Count
0          121  Yes   No         Yes      1
1          123  Yes   No          No      2
2          126   No   No          No      3

使用iloc选择所有列但不包括第一列的另一种解决方案:

df['Count'] = (df.iloc[:,1:] == 'No').sum(axis=1)
print (df)
   MachineName Logs Jobs Performance  Count
0          121  Yes   No         Yes      1
1          123  Yes   No          No      2
2          126   No   No          No      3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接