Как удалить определенные k записей, принадлежащих одной группе в pandas, например. уроки баланса?

В настоящее время у меня есть следующее распределение меток

Lbl
0    10451
1     1481
dtype: int64

Как сбалансировать ярлыки? например, выбрав только 1481 из 0?

Данный фрейм данных должен быть

index | 1 | 2 | 3 | ... | Lbl

Спасибо

Обновлено: Добавление изображения для решения проблемы, обсуждаемой в ответе: Как удалить определенные k записей, принадлежащих одной группе в pandas, например. уроки баланса?

Я получаю вышеуказанный ^^ для этого кода

print(table_train[:5])
table_train = table_train.groupby('Lbl').apply(lambda x : x.sample(1481)).reset_index(level=1, drop=True)
print(table_train[:5])

так вы хотите понизить дискретизацию?

BENY 31.05.2019 04:12

@WeNYoBen Наверное, в каком-то смысле? Я хочу удалить все значения, кроме 1481 для метки 0

YohanRoth 31.05.2019 04:12
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
32
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете попробовать с sample после groupby

df.groupby('Label').apply(lambda x : x.sample(1481)).reset_index(level=0,drop=True)

Я не уверен, почему, но после запуска этой команды у меня появился еще один индекс с меткой Label. Итак, теперь у меня есть два столбца с одинаковыми именами - метка индекса и метка столбца...

YohanRoth 31.05.2019 04:19

Я пытаюсь позже подсчитать результат с помощью table_train.groupby('Label").size() и получаю ValueError: 'Label' является как уровнем индекса, так и меткой столбца, что неоднозначно.

YohanRoth 31.05.2019 04:27

@YohanRoth, используя reset_index, удаляет дополнительный индекс

BENY 31.05.2019 04:37

выдает ошибку «ValueError: невозможно вставить метку, она уже существует», когда я делаю table_train.reset_index()

YohanRoth 31.05.2019 04:40

@YohanRoth, ты проверил мой метод обновления? вы должны добавить drop=True

BENY 31.05.2019 04:41

Да, я проверял, пробовал. Но он не удаляет индекс ... У меня все еще есть ValueError: «Lbl» - это и уровень индекса, и метка столбца, что неоднозначно.

YohanRoth 31.05.2019 04:46

@YohanRoth reset_index(level=0,drop=True) изменить уровень = 1 на уровень = 0

BENY 31.05.2019 04:52

Другие вопросы по теме