#pandas #dataframe #filtering
#pandas #фрейм данных #фильтрация
Вопрос:
У меня есть набор данных примерно с 50 тыс. строк и 15 столбцами. Мне нужно выбрать только определенные строки, которые следуют правилу: «если строка в столбце «C» появляется более 20 раз в наборе данных (в этом столбце), выберите эту строку». Это в основном фильтрация на основе режима определенного столбца.
В конце я ожидаю получить набор данных с примерно 5 тыс. строк (и 15 столбцов).
Я попытался выполнить это, используя value_counts() для столбца, но затем я не могу сопоставить остальную информацию с конкретной строкой.
Заранее большое вам спасибо!
Ответ №1:
Давайте попробуем groupby().transform
логическую индексацию:
df.loc[df.groupby('C')['C'].transform('size') >= 20]