- Если
data
- это панда DataFrame
, и она содержит как user_id
, так и operations_per_user
как столбцы, вы должны выполнить удаление с помощью:
data = data.drop(data.loc[data['operations_per_user'] <= 3].index)
Редактировать
Вместо создания отдельной серии вы можете добавить operations_per_user
к data
с помощью:
data['operations_per_user'] = data.loc[:, 'user_id'].value_counts()
Вы можете выполнить сброс, как указано выше, или выполнить выборку с обратным логическим условием:
data = data.loc[data['operations_per_user' > 3]]
Оригинал
Было бы предпочтительнее, если бы вы могли предоставить больше информации о переменных, используемых в вашем коде.
- Если
operations_per_user
- это панда Series
, ваш первый цикл может быть улучшен с помощью:
undesirable_users=[]
for i in operations_per_user.index:
if operations_per_user.loc[i] <= 3:
undesirable_users.append(i)
Функция get_value()
устарела, вместо нее используйте loc
или iloc
. Это - хорошее обобщение loc
и iloc
, а здесь - отличная таблица панд для справки.
- Вы можете использовать списки Python в качестве итераторов; для вашего второго цикла:
for user in undesirable_users:
data = data.drop(data.loc[data['user_id'] == user].index)