Метод any
Метод any применяется к объекту GroupBy
и возвращает DataFrame или Series с булевыми значениями,
указывающими, содержит ли каждая группа хотя бы одно истинное значение.
По умолчанию метод проверяет значения по оси 0 (строки).
Параметр skipna позволяет игнорировать пропущенные значения.
Синтаксис
groupby_obj.any(skipna=True, axis=0)
Параметры
-
skipna- булевый флаг, определяющий, исключать ли пропущенные значения (Trueпо умолчанию). ЕслиTrue, то пропуски игнорируются. ЕслиFalse, то наличие пропуска в группе приведёт к результатуTrue, так как пропуск считается истинным значением. -
axis- ось, вдоль которой применяется метод (0для строк,1для столбцов).
Пример
Давайте создадим таблицу и сгруппируем данные по столбцу a,
затем проверим наличие истинных значений в каждой группе:
import pandas as pd
df = pd.DataFrame({
'a': [1, 1, 2, 2, 3],
'b': [True, False, True, True, False],
'c': [False, False, False, False, False]
})
grouped = df.groupby('a')
res = grouped.any()
print(res)
Результат выполнения кода:
b c
a
1 True False
2 True False
3 False False
Пример
Используем параметр skipna для управления обработкой
пропущенных значений. В одной из групп есть пропуск:
import pandas as pd
import numpy as np
df = pd.DataFrame({
'a': [1, 1, 2, 2],
'b': [True, np.nan, False, False],
'c': [False, False, True, False]
})
grouped = df.groupby('a')
res = grouped.any(skipna=False)
print(res)
Результат выполнения кода:
b c
a
1 True False
2 False True
Пример
Применим метод any к одной колонке группы
с помощью оператора индексации:
import pandas as pd
df = pd.DataFrame({
'a': [1, 1, 2, 2, 3, 3],
'b': [0, 5, 0, 0, 8, 0],
'c': [0, 0, 3, 0, 0, 0]
})
res = df.groupby('a')['b'].any()
print(res)
Результат выполнения кода:
a
1 True
2 False
3 True
Name: b, dtype: bool
Пример
Используем метод any вместе с агрегацией
для проверки условия в группах:
import pandas as pd
df = pd.DataFrame({
'a': ['x', 'x', 'y', 'y', 'z'],
'b': [1, 2, 3, 4, 5],
'c': [0, 0, 6, 0, 7]
})
res = df.groupby('a').any()
print(res)
Результат выполнения кода:
b c
a
x True False
y True True
z True True