Подсчитайте вхождения False или True в столбце в пандах

данный

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

как подсчитать False или True в столбце в Python?

Я пытался:

# number of patients with cancer

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

Отвечает ли это на ваш вопрос? Подсчитайте количество случаев True / False в столбце фрейма данных

Serge Stroobandt 24.08.2021 15:13
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
51
1
97 560
6

Ответы 6

Значит вам нужен value_counts?

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

Спасибо!! как мне напечатать только «Ложь»? (Я проверяю pandas.pydata.org/pandas-docs/stable/generated/…, но не совсем понятно)

Ney J Torres 30.11.2018 04:58

+ 1 @ NeyJTorres Для записи, вы можете получить только номер False, добавив .loc[False], как в df.has_cancer.value_counts().loc[False]. Однако, когда вам нужен только либоTrue или False (но не оба сразу), я думаю, что проще использовать подход, подобный (~df.has_cancer).sum(), от холодного спида.

Mike 08.04.2019 17:51

Просто просуммируйте столбец для подсчета Истин. Ложь - это просто частный случай 0, а Истина - особый случай 1. Счетчик Ложи будет вашим количеством строк за вычетом этого. Если только у вас там нет na.

и если у меня там NaN?

Vicki B 19.01.2020 07:41

Сумма na, как если бы они были 0, последний раз я проверял.

gilch 27.01.2020 08:36

Если has_cancer имеет NaN:

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

Если has_cancer не имеет NaN, вы можете оптимизировать, не отменяя маски заранее.

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

И аналогично, если вы хотите, чтобы просто подсчитывал истинные значения, то есть

true_count = df.has_cancer.sum()

Если вы хотите и то, и другое, это

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

Если приведенная выше серия панда называется примером

example.sum()

Затем этот код выводит 1, поскольку в серии есть только одно значение True. Чтобы узнать количество False

len(example) - example.sum()
number_of_patients_with_cancer = df.has_cancer[df.has_cancer==True].count()

Рассматривайте ваш вышеупомянутый фрейм данных как df

True_Count = df[df.has_cancer == True]

len(True_Count)

Другие вопросы по теме