Оставить группы по условию в Pandas
Если нужно убрать целые группы
по правилу, после группировки
вызывают метод filter:
функция получает кусок таблицы
одной группы и возвращает
True или False.
Создадим таблицу матчей по командам и оставим только те, где строк больше двух:
import pandas as pd
data = {
'team': ['x', 'x', 'y', 'y', 'y', 'z'],
'score': [1, 2, 3, 4, 5, 6],
}
games = pd.DataFrame(data)
def enough_rows(group):
return len(group) > 2
filtered = games.groupby('team').filter(enough_rows)
print(filtered) # выведет team score
# 2 y 3
# 3 y 4
# 4 y 5
Команды x и z
имеют по одной или две строки,
поэтому их строки в результат
не попали. У команды y
три записи - все три остались
в таблице.
Соберите таблицу с городами
и температурой в столбце
temp так, чтобы у
одного города было две строки,
у другого - три. Оставьте
только города с более чем
двумя измерениями и выведите
таблицу.
Создайте таблицу с отделами
и часами работы в столбце
hours. Удалите из
результата отделы, где строк
меньше трёх, и покажите
оставшееся.
Из таблицы оценок по предметам оставьте только предметы, по которым записано больше двух оценок, и выведите таблицу.