- Pandas: как подсчитать значения в столбце с условием
- Пример 1. Подсчет значений в одном столбце с условием
- Пример 2. Подсчет значений в нескольких столбцах с условиями
- Дополнительные ресурсы
- Количество элементов в списке Python с условиями или критериями
- 1. Использование цикла for для подсчета в списке Python
- 2. Применение len() со списковыми включениями для подсчета в списке Python
- Подсчет ненулевых элементов
- 3. sum() и выражение-генератор для подсчета в списке Python
- 4. sum() и map() для подсчета элементов списка Python с условиями или критериями
- 5. reduce() с лямбда-функцией для подсчета элементов списка Python с условием или критериями
Pandas: как подсчитать значения в столбце с условием
Вы можете использовать следующие методы для подсчета количества значений в столбце pandas DataFrame с определенным условием:
Метод 1: подсчет значений в одном столбце с условием
Способ 2: подсчет значений в нескольких столбцах с условиями
len(df[(df['col1']=='value1') &(df['col2']=='value2')])
В следующих примерах показано, как использовать каждый метод на практике со следующими пандами DataFrame:
import pandas as pd #create DataFrame df = pd.DataFrame() #view DataFrame print(df) team pos points 0 A Gu 18 1 A Fo 22 2 A Fo 19 3 A Fo 14 4 B Gu 14 5 B Gu 11 6 B Fo 20 7 B Fo 28
Пример 1. Подсчет значений в одном столбце с условием
В следующем коде показано, как подсчитать количество значений в столбце команды , где значение равно ‘A’:
#count number of values in team column where value is equal to 'A' len(df[df['team']=='A']) 4
Мы видим, что в столбце команды есть 4 значения, где значение равно «А».
Пример 2. Подсчет значений в нескольких столбцах с условиями
В следующем коде показано, как подсчитать количество строк в DataFrame, где столбец team равен «B», а столбец pos равен «Gu»:
#count rows where team is 'B' and pos is 'Gu' len(df[(df['team']=='B') &(df['pos']=='Gu')]) 2
Мы видим, что в DataFrame есть 2 строки, которые удовлетворяют обоим этим условиям.
Мы можем использовать аналогичный синтаксис для подсчета количества строк, удовлетворяющих любому количеству условий, которые нам нужны.
Например, следующий код показывает, как подсчитать количество строк, удовлетворяющих трем условиям:
#count rows where team is 'B' and pos is 'Gu' and points > 15 len(df[(df['team']=='B') &(df['pos']=='Gu') &(df['points']> 12 )]) 1
Мы видим, что только 1 строка в DataFrame соответствует всем трем этим условиям.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в pandas:
Количество элементов в списке Python с условиями или критериями
В этой статье мы рассмотрим, как найти количество элементов в списке Python, которые удовлетворяют определенным условиям или критериям.
Если вы просто хотите найти номер определенного элемента в списке, используйте функцию .count()
Копировать Копировать Копировать Использовать другой браузер
>>> list_numbers = [1, 2, 2, 5, 5, 7, 4, 2, 1] >>> print(list_numbers.count(2)) 3Существует несколько способов выполнения этого подсчета, и мы покажем на примере каждого из них. Итак, давайте начнем.
1. Использование цикла for для подсчета в списке Python
В этом фрагменте кода мы используем цикл for для подсчета элементов в списке Python, которые удовлетворяют условию или критерию. В цикле мы просматриваем каждый элемент списка, проверяя условие, и если оно истинно, то увеличиваем счетчик на единицу. Это простой процесс свертывания и подсчета для получения нужного числа.
Копирование Копирование Использование другого браузера
list_numbers = [78, 99, 66, 44, 50, 30, 45, 15, 25, 20] count = 0 for item in list_numbers: if item%5 == 0: count += 1 print("", count)количество элементов списка, удовлетворяющих заданному условию: 6
2. Применение len() со списковыми включениями для подсчета в списке Python
В следующем коде используется понимание списка для создания нового списка с элементами, удовлетворяющими заданным критериям, и для получения длины составленного списка. Это легче понять на примере, поэтому давайте перейдем к объяснению.
Копировать Копировать Использовать другой браузер
list_numbers = [78, 99, 66, 44, 50, 30, 45, 15, 25, 20] element_count = len([item for item in list_numbers if item%5 == 0]) print("Number of list elements удовлетворяющий заданному условию:", element_count )количество элементов списка, удовлетворяющих заданному условию: 6
Подсчет ненулевых элементов
В данном примере мы хотим найти общее количество ненулевых элементов. Чтобы найти количество ненулевых членов списка, просто добавьте условие if item == 0 .
Копирование Копирование Копирование Использование другого браузера
list_numbers = [78, 99, 66, 44, 50, 30, 45, 0, 0, 0, 0] element_count = len([item for item in list_numbers if item ! = 0]) print("Количество элементов списка, удовлетворяющих данному условию:", element_count )количество элементов списка, удовлетворяющих заданному условию: 7
3. sum() и выражение-генератор для подсчета в списке Python
В данном примере кода sum() с такими выражениями, как генерация Каждый элемент списка проверяется условием, и если элемент ему удовлетворяет, то возвращается значение True . Метод sum() метод подсчитывает общее количество истинных значений.
Копировать Копировать Использовать другой браузер
list_numbers = [78, 99, 66, 44, 50, 30, 45, 15, 25, 20] count = 0 count = sum(True for i in list_numbers if i % 5 == 0) print("количество элементов списка удовлетворяющее данное условие:", count )количество элементов списка, удовлетворяющих заданному условию: 6
4. sum() и map() для подсчета элементов списка Python с условиями или критериями
Функции map(fun, iterable) Принимает два аргумента, объект iterable (строка, кортеж, список, словарь и т.д.) и функцию, которая будет применена к каждому из его элементов, и возвращает объект map (итератор). Чтобы применить одну функцию внутри другой, лучше всего использовать лямбда-функцию. Например. map() принимает свой первый аргумент в виде лямбда-функции.
Здесь sum() используется здесь. map() чтобы получить количество всех элементов в списке, кратных 5.
Рассмотрим пример использования переданной лямбда-функции для отсеивания членов списка, не кратных 5.
Копия копия копия копия копия Используйте другой браузер
list_numbers = [78, 99, 66, 44, 50, 30, 45, 15, 25, 20] count = 0 count = sum(map(lambda item: item % 5 == 0, list_numbers)) print("количество элементов списка соответствующих заданному условию:", count )количество элементов списка, удовлетворяющих заданному условию: 6
5. reduce() с лямбда-функцией для подсчета элементов списка Python с условием или критериями
Лямбда — это анонимная (безымянная) функция, которая может принимать множество параметров, но тело функции должно содержать только одно выражение. Лямбда-функции чаще всего используются для передачи в качестве аргументов другим функциям или для написания более лаконичного кода. В данном примере sum() , map() и reduce() можно использовать для подсчета количества элементов в списке, кратных 5.
Следующий код наглядно иллюстрирует это.
копия копия копия копия используйте другой браузер
from functools import reduce list_numbers = [78, 99, 66, 44, 50, 30, 45, 15, 25, 20] result_count = reduce( lambda count, item: count + (item % 5 == 0), list_ numbers, 0 ) print( "количество элементов списка, удовлетворяющих заданному условию:", result_count )количество элементов списка, удовлетворяющих заданному условию: 6
Теперь вы знаете о различных подходах к подсчету элементов в списке Python, используя условия и критерии для фильтрации данных.