Подтвердить что ты не робот

Отбросить несколько столбцов в pandas

Я пытаюсь удалить несколько столбцов (столбец 2 и 70 в моем наборе данных, индексированный как 1 и 69 соответственно) по номеру индекса в кадре данных pandas со следующим кодом:

df.drop([df.columns[[1, 69]]], axis=1, inplace=True)

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

TypeError: unhashable type: 'Index'

И в моем коде выделяется [1, 69] и говорит:

Expected type 'Integral', got 'list[int]' instead

Следующий код делает то, что я хочу, чтобы он делал успешно, но на двух строках повторяющегося кода (первый сброс индекса col 69, затем 1, и порядок имеет значение, потому что удаление предыдущих столбцов изменяет индекс более поздних столбцов). Я думал, что я могу указать более одного индекса столбца просто как список, но, возможно, у меня что-то неправильно выше?

df.drop([df.columns[69]], axis=1, inplace=True)
df.drop([df.columns[1]], axis=1, inplace=True)

Есть ли способ, которым я могу сделать это на одной строке, подобной первому фрагменту кода выше?

4b9b3361

Ответ 1

Вам не нужно обертывать его в список с помощью [..], просто укажите подсегмент индекса столбцов:

df.drop(df.columns[[1, 69]], axis=1, inplace=True)

поскольку индексный объект уже рассматривается как список.