#pandas
#pandas
Вопрос:
У меня есть приведенный ниже набор данных. Я пытаюсь выяснить, как удалить столбцы «Безымянный 5» через «Безымянный 9». Я пробовал приведенный ниже код, но он не работает.
Данные (с именем mapping_table):
Gender|Age|Weight|Height|Unnamed 5| Unnamed 6| Unnamed 7| Unnamed 8| Unnamed 9|
Код:
mapping_table.drop(mapping_table.index[(mapping_table.columns.get_loc("Unnamed: 11")):(mapping_table.columns.get_loc("Unnamed: 19"))],axis=1,inplace=True)
Ошибка:
KeyError: 'labels [11 12 13 14 15 16 17 18] not contained in axis'
Есть ли более простой способ сделать это? Я чувствую, что я должен просто иметь возможность удалить что-то вроде
mapping_table.drop([сопоставление.таблица[«Безымянный 5»: «Безымянный 9»]])
Ответ №1:
Данные:
df = pd.DataFrame(None, columns = "Gender|Age|Weight|Height".split('|') ['Unnamed ' str(x) for x in range(0,15)])
Empty DataFrame
Columns: [Gender, Age, Weight, Height, Unnamed 0, Unnamed 1, Unnamed 2, Unnamed 3, Unnamed 4, Unnamed 10, Unnamed 11, Unnamed 12, Unnamed 13, Unnamed 14]
Index: []
Код:
df = df.drop(df.columns[df.columns.str.contains('Unnameds[5-9]')], axis = 1)
Результат:
Empty DataFrame
Columns: [Gender, Age, Weight, Height, Unnamed 0, Unnamed 1, Unnamed 2, Unnamed 3, Unnamed 4, Unnamed 10, Unnamed 11, Unnamed 12, Unnamed 13, Unnamed 14]
Index: []