Как удалить строки из категориальной переменной, значения которой не удовлетворяют условию? - PullRequest
1 голос
/ 26 марта 2020

Я новичок в ML и Data Science (недавно окончила магистратуру по бизнес-аналитике) и теперь изучаю столько, сколько могу, пока ищу позиции в Data Science / Business Analytics.

Я работаю на практическом наборе данных с целью предсказать, какие клиенты, скорее всего, пропустят свое запланированное назначение. Один из столбцов в моем наборе данных - «Соседство», который содержит названия более 30 различных районов. В моем наборе данных содержится 10 000 наблюдений, а некоторые названия районов появляются только менее 50 раз. Я думаю, что окрестности, которые встречаются в наборе данных менее 50 раз, слишком редки, чтобы их можно было должным образом проанализировать с помощью моделей машинного обучения. Поэтому я хочу удалить названия окрестностей из столбца «Соседство», которые появляются в этом столбце менее 50 раз.

Я пытался написать код для этого в течение нескольких часов, но изо всех сил пытаюсь сделать это правильно. До сих пор я дошел до версии ниже:

my_df = my_df.drop(my_df["Neighbourhood"].value_counts() < 50, axis = 0)

Я также пробовал другие версии кода, чтобы избавиться от строк в этом категориальном столбце, но я продолжаю получать похожую ошибку:

KeyError: '[False False ...  True  True] not found in axis'

Я заранее благодарен за вашу помощь и благодарю вас за то, что вы поделились со мной своими знаниями и знаниями!

1 Ответ

3 голосов
/ 26 марта 2020

Попробуйте код ниже - он использует оператор .lo c для выбора строк на основе определенного условия (т. Е. В окрестностях с большим количеством)

counts = my_df['Neighborhood'].value_counts()
new_df = my_df.loc[my_df['Neighborhood'].isin(counts.index[counts > 50])]
...