Ney*_*res 4 python count dataframe pandas
给定
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
Run Code Online (Sandbox Code Playgroud)
如何在python中的列中计算False或True?
我一直在尝试:
# number of patients with cancer
number_of_patients_with_cancer= (df["has_cancer"]==True).count()
print(number_of_patients_with_cancer)
Run Code Online (Sandbox Code Playgroud)
WeN*_*Ben 11
所以你需要value_counts吗?
df.has_cancer.value_counts()
Out[345]:
False 6
True 1
Name: has_cancer, dtype: int64
Run Code Online (Sandbox Code Playgroud)
如果has_cancer有NaN:
false_count = (~df.has_cancer).sum()
Run Code Online (Sandbox Code Playgroud)
如果has_cancer没有NaN,则可以通过不必预先取消掩码来进行优化。
false_count = len(df) - df.has_cancer.sum()
Run Code Online (Sandbox Code Playgroud)
同样,如果你想只是真正的价值,这就是计数
true_count = df.has_cancer.sum()
Run Code Online (Sandbox Code Playgroud)
如果两者都想要
fc, tc = df.has_cancer.value_counts().sort_index().tolist()
Run Code Online (Sandbox Code Playgroud)
小智 8
number_of_patients_with_cancer = df.has_cancer[df.has_cancer==True].count()
Run Code Online (Sandbox Code Playgroud)
小智 7
0 True
1 False
2 False
3 False
4 False
5 False
6 False
7 False
8 False
9 False
Run Code Online (Sandbox Code Playgroud)
如果上面的熊猫系列被称为示例
example.sum()
Run Code Online (Sandbox Code Playgroud)
然后此代码输出 1,因为True该系列中只有一个值。得到计数False
len(example) - example.sum()
Run Code Online (Sandbox Code Playgroud)