在pandas中计算列中出现False或True的次数

2guxujil  于 2023-03-28  发布在  其他
关注(0)|答案(7)|浏览(155)

给定

patient_id  test_result has_cancer
0   79452   Negative    False
1   81667   Positive    True
2   76297   Negative    False
3   36593   Negative    False
4   53717   Negative    False
5   67134   Negative    False
6   40436   Negative    False

如何在Python中计算列中的False或True?
我一直在努力:

# number of patients with cancer

number_of_patients_with_cancer= (df["has_cancer"]==True).count()
print(number_of_patients_with_cancer)
ncecgwcz

ncecgwcz1#

所以你需要value_counts

df.col_name.value_counts()
Out[345]: 
False    6
True     1
Name: has_cancer, dtype: int64
k3bvogb1

k3bvogb12#

如果has_cancer有NaN:

false_count = (~df.has_cancer).sum()

如果has_cancer没有NaN,您可以通过不必预先否定掩码来进行优化。

false_count = len(df) - df.has_cancer.sum()

类似地,如果您只需要True值的计数,即

true_count = df.has_cancer.sum()

如果你两个都想要,那就是

fc, tc = df.has_cancer.value_counts().sort_index().tolist()
798qvoo8

798qvoo83#

0     True
1    False
2    False
3    False
4    False
5    False
6    False
7    False
8    False
9    False

如果上面的Pandas系列叫做example

example.sum()

然后这个代码输出1,因为序列中只有一个True值。

len(example) - example.sum()
cngwdvgl

cngwdvgl4#

number_of_patients_with_cancer = df.has_cancer[df.has_cancer==True].count()
ct2axkht

ct2axkht5#

把你上面的数据框当作一个df

True_Count = df[df.has_cancer == True]

len(True_Count)
sf6xfgos

sf6xfgos6#

只要对列求和就可以得到True的计数。False是0的特例,True是1的特例。False计数是行数减去它。除非你有na

fafcakar

fafcakar7#

计数True

df["has_cancer"].sum()

计数False

(~df["has_cancer"]).sum()

请参见布尔运算符。

相关问题