Pandas — имя столбца KeyError не найдено на оси — \n появляется после имени столбца при использовании drop()

У меня есть фрейм данных со множеством столбцов, представляющих статистику футбольных матчей.

Поскольку я очистил данные, у меня есть две строки на совпадение, и я пытаюсь удалить дубликаты.

Я попробовал выполнить:

df.drop(all_matches[df['HomeTeam'] != df['team']])

чтобы удалить случаи, когда значения в столбцах HomeTeam не соответствуют столбцам команды.

Я получил следующую ошибку:

KeyError: "['date' 'time' 'comp' 'round' 'day' 'venue' 'result'
'HomeTeam' 'AwayTeam'\n 'gf' 'ga' 'opponent' 'poss' 'attendance'
'captain' 'formation' 'referee'\n 'match report' 'notes' 'sh' 'sot'
'pk' 'pkatt' 'venue_vs' 'result_vs'\n 'team_shots_vs'
'team_shots_ot_vs' 'pk_vs' 'pkatt_vs' 'season' 'team'] not found in
axis"

Я не понимаю, почему это не работает и почему после кавычек за некоторыми именами столбцов следует символ новой строки.

Можете ли вы поделиться полным кодом - очистка данных? трудно отладить вашу проблему. И что ты здесь пытаешься сделать? ты собираешься сделать df[df['HomeTeam'] == df['team']]?

chitown88 30.05.2024 11:14

вы также можете использовать .drop_duplicates(subset=['column1', 'columns2']

chitown88 30.05.2024 11:16
Почему в 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
63
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Чтобы удалить дубликаты из DataFrame на основе условия «HomeTeam» соответствует «team» для каждого совпадения, вам необходимо использовать метод drop_duplicates в pandas.

df.drop(all_matches[df['HomeTeam'] != df['team']]) не подходит для этой цели, поскольку он пытается удалить столбцы, которых нет в DataFrame, что также приводит к ошибке KeyError.

Вместо этого вы можете использовать:

df_cleaned = df.drop_duplicates(subset=['team', 'HomeTeam'])

Для получения дополнительной информации о методе drop_duplicates вы можете обратиться к документу: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.drop_duulates.html

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