Как сделать срез данных по определенному столбцу с типом 'object'?
В DataFrame есть столбец 'locality_name', в котором хранятся названия населенных пунктов. Нужно оставить из них только 10, тех, количество которых больше всего.
Прогнал через value_counts(), определил, каких значений больше, и вручную ввел значения для среза через query():
final_stat = stat.query('locality_name in ("Санкт-Петербург", "посёлок Мурино", "посёлок Шушары", "Всеволожск", "Пушкин", "Колпино", "посёлок Парголово", "Гатчина", "деревня Кудрово", "Выборг", "Петергоф")')
Как можно это автоматизировать, чтобы не вводить нужные значения вручную?
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Попробуйте так:
top10 = df["locality_name"].value_counts().head(10).index
res = df.query("locality_name in @top10")
или так:
res = df.loc[df["locality_name"].isin(df["locality_name"].value_counts().head(10).index)]