如何使用Python计算列中指定值的出现次数

如何使用Python计算列中指定值的出现次数,python,pandas,Python,Pandas,在下面的数据框中,我需要计算列IsCleared中有多少行包含“False” IsCleared 0 False 1 False 2 True 3 False 因此,我在Python 2.7中执行以下操作: sum = df[df.IsCleared == 'False'].count() print sum 但我得到了这个错误: FutureWarning: elementwise comparison failed; r

在下面的数据框中,我需要计算列IsCleared中有多少行包含“False”

       IsCleared
0       False   
1       False
2       True
3       False
因此,我在Python 2.7中执行以下操作:

sum = df[df.IsCleared == 'False'].count()
print sum
但我得到了这个错误:

FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison
  result = getattr(x, name)(y)
invalid type comparison
我做错了什么

这样做:

df['IsCleared'].value_counts()
这将为您提供false和true的总数

执行以下操作:

df['IsCleared'].value_counts()

这将为您提供false和true的总计数

您有一个布尔掩码。那为什么不用它呢

>>> (~df.IsCleared).sum()
3

False
值求反为
True
,然后将其相加(因为
True
相当于
1
,而
False
相当于
0
,这样做效果很好)

您有一个布尔掩码。那为什么不用它呢

>>> (~df.IsCleared).sum()
3

False
值求反为
True
,然后将其相加(因为
True
相当于
1
,而
False
相当于
0
,这样做效果很好)

您做错了,因为您在第行将
False
转换为字符串
'False'

df[df.IsCleared=='False'].count()

因此,它会抱怨,因为您让它将布尔值与字符串进行比较

无效类型比较

换成

df[df.IsCleared == False].count()

它会起作用的。

你做错了,因为你把
False
变成了一个字符串
'False'

df[df.IsCleared=='False'].count()

因此,它会抱怨,因为您让它将布尔值与字符串进行比较

无效类型比较

换成

df[df.IsCleared == False].count()

它应该可以工作。

(~df.IsCleared).sum()
我认为
IsCleared
的数据类型是布尔型的,但您正在与字符串进行比较。这些是不同的类型,因此无法进行比较。
df[~df['IsCleared']]。shape[0]
@cᴏʟᴅsᴘᴇᴇᴅ 这是一个很好的解决方案。你为什么不把它作为答案发布?@cᴏʟᴅsᴘᴇᴇᴅ 对我投了赞成票:)
(~df.IsCleared).sum()
我认为
IsCleared
的数据类型是布尔型的,但您正在与字符串进行比较。这些是不同的类型,因此无法进行比较。
df[~df['IsCleared']]。shape[0]
@cᴏʟᴅsᴘᴇᴇᴅ 这是一个很好的解决方案。你为什么不把它作为答案发布?@cᴏʟᴅsᴘᴇᴇᴅ 对我投了赞成票:)OP询问如何计算
False
值,而不是同时计算
False
True
。OP询问如何计算
False
值,而不是同时计算
False
True
。非常简洁。非常感谢。在df.IsCleared之前,~意味着什么?@sprogisd它只是意味着我否定了掩码,所以所有的F值都变成了T,反之亦然。让我用这种方法计算F值的个数,一旦我对它们求反。非常简洁。非常感谢。在df.IsCleared之前,~意味着什么?@sprogisd它只是意味着我否定了掩码,所以所有的F值都变成了T,反之亦然。让我以这种方式计算F值的个数,一旦我对它们求反。