Фильтрация фрейма данных Pandas по частоте

#pandas #dataframe #filtering

#pandas #фрейм данных #фильтрация

Вопрос:

У меня есть набор данных примерно с 50 тыс. строк и 15 столбцами. Мне нужно выбрать только определенные строки, которые следуют правилу: «если строка в столбце «C» появляется более 20 раз в наборе данных (в этом столбце), выберите эту строку». Это в основном фильтрация на основе режима определенного столбца.

В конце я ожидаю получить набор данных с примерно 5 тыс. строк (и 15 столбцов).

Я попытался выполнить это, используя value_counts() для столбца, но затем я не могу сопоставить остальную информацию с конкретной строкой.

Заранее большое вам спасибо!

Ответ №1:

Давайте попробуем groupby().transform логическую индексацию:

 df.loc[df.groupby('C')['C'].transform('size') >= 20]