Выберите несколько столбцов с помощью меток pandas
Я искал способы выбора столбцов через документацию python и форумы, но каждый пример индексации столбцов слишком упрощен.
Предположим, что у меня есть 10 x 10 фреймов данных
df = DataFrame(randn(10, 10), index=range(0,10), columns=['A', 'B', 'C', 'D','E','F','G','H','I','J'])
До сих пор все документы были просто простым примером индексации, например
subset = df.loc[:,'A':'C']
или
subset = df.loc[:,'C':]
Но я получаю сообщение об ошибке, когда я пытаюсь индексировать несколько непоследовательных столбцов, например
subset = df.loc[:,('A':'C', 'E')]
Как мне индексировать в Pandas, если я хотел бы выбрать столбцы A-C, E и G для I? Похоже, что эта логика не будет работать
subset = df.loc[:,('A':'C', 'E', 'G':'I')]
Я чувствую, что решение довольно простое, но я не могу обойти эту ошибку. Спасибо!
Ответы
Ответ 1
У вас есть как минимум пара вариантов.
Имя или Label-Based (с использованием синтаксиса регулярных выражений)
df.filter(regex='[A-CEG-I]')
Местоположение (зависит от порядка столбцов)
cols = list(df.loc[:,'A':'C']) + ['E'] + list(df.loc[:,'G':'I'])
df[cols]
Результаты в любом случае:
A B C E G H I
0 -0.814688 -1.060864 -0.008088 2.697203 -0.763874 1.793213 -0.019520
1 0.549824 0.269340 0.405570 -0.406695 -0.536304 -1.231051 0.058018
2 0.879230 -0.666814 1.305835 0.167621 -1.100355 0.391133 0.317467