Как выбрать определенные индексы столбцов (непрерывные и индивидуальные) в Pandas - PullRequest
2 голосов
/ 29 февраля 2020

Я пришел из фона R, и у меня возникают проблемы с нарезкой определенных наборов столбцов в pandas.

Допустим, я пытаюсь получить столбцы с индексами 0, 3, 5–20 и 25-й , Я бы подумал, что получить доступ к тому, что я хочу, это:

df.iloc[:, [0,3,5:20,25]]

, но есть синтаксическая ошибка с : в строке кода 5:20. Есть ли способ сгенерировать последовательность чисел от 5 до 20 без ввода каждого числа?

Ответы [ 2 ]

2 голосов
/ 29 февраля 2020

Вы можете использовать numpy.r_[...]:

df.iloc[:, np.r_[0,3,5:21,25]]

Обратите внимание, что срез 5:21, так как numpy использует соглашение по нарезке Python (исключая верхнюю границу), тогда как pandas включает оба нижний и верхний предел.

1 голос
/ 29 февраля 2020

Вы можете сначала создать список, а затем использовать .iloc[].

my_list = [0, 3]
my_list.extend(range(5, 21))
my_list.extend([25])
df.iloc[my_list]
...