Cuente las ocurrencias de Falso o Verdadero en una columna en pandas

2 minutos de lectura

Avatar de usuario de Ney J Torres
Ney J Torres

dado

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

¿Cómo contar Falso o Verdadero en una columna, en python?

yo había estado intentando:

# number of patients with cancer

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

  • ¿Responde esto a tu pregunta? Cuente las ocurrencias de Verdadero/Falso en la columna del marco de datos

    – Serge Stroobandt

    24 de agosto de 2021 a las 13:13

Avatar de usuario de BENY
beny

Así que tú necesitas value_counts ?

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

  • ¡¡Gracias!! ¿Cómo imprimo solo “Falso”? (Estoy comprobando pandas.pydata.org/pandas-docs/stable/generated/… pero no está muy claro)

    – Ney J Torres

    30 de noviembre de 2018 a las 3:58


  • +1@NeyJTorres Para que conste, puede obtener solo el False número agregando .loc[False]como en df.has_cancer.value_counts().loc[False]. Sin embargo, cuando solo necesitas cualquiera True o False (pero no ambos), creo que es más fácil usar el enfoque de Coldspeed de algo como (~df.has_cancer).sum().

    – Miguel

    08/04/2019 a las 15:51

avatar de usuario de cs95
cs95

Si has_cancer tiene NaN:

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

Si has_cancer no tiene NaN, puede optimizar al no tener que negar las máscaras de antemano.

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

Y del mismo modo, si quieres solo el recuento de valores verdaderos, es decir

true_count = df.has_cancer.sum()

Si quieres ambos, es

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

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

Si la serie panda anterior se llama ejemplo

example.sum()

Entonces este código genera 1 ya que solo hay uno True valor en la serie. Para obtener el conteo de False

len(example) - example.sum()

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

avatar de usuario de gilch
gilch

Simplemente sume la columna para contar los Verdaderos. False es solo un caso especial de 0 y True es un caso especial de 1. El conteo Falso sería su conteo de filas menos eso. A menos que tengas naestá ahí.

  • y si tengo NaN allí?

    – Vicky B.

    19 de enero de 2020 a las 6:41

  • na‘s suma como si fueran 0lo último que revisé.

    – gilch

    27 de enero de 2020 a las 7:36

Avatar de usuario de Reza Rahemtola
Reza Rahemtola

Considere su marco de datos anterior como un df

True_Count = df[df.has_cancer == True]

len(True_Count)

  • y si tengo NaN allí?

    – Vicky B.

    19 de enero de 2020 a las 6:41

  • na‘s suma como si fueran 0lo último que revisé.

    – gilch

    27 de enero de 2020 a las 7:36

¿Ha sido útil esta solución?