Удаление нескольких столбцов с помощью Pandas

#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: []