Как выбрать столбцы фрейма данных не в списке имен в Python - PullRequest
0 голосов
/ 10 июля 2019

Я хочу установить под индекс столбца фрейма данных, сохранив все столбцы, которые НЕ начинаются с определенной строки. Прямо сейчас я могу отфильтровать индекс столбцов для столбцов, начинающихся с определенной строки, но я бы хотел сделать обратное и исключить имена столбцов, которые соответствуют определенному критерию.

При попытке сохранить столбцы

Если я пытаюсь сохранить имена столбцов, начинающиеся с FR, я использую этот код, который работает.

factor_list = df2.filter(like = 'FR_', axis=1).columns

Пытаясь исключить столбцы, начинающиеся с "FR", я пробовал много вещей, включая следующие:

factor_list = df2.filter(like != 'FR_', axis=1).columns
factor_list = ~df2.filter(like = 'FR_', axis=1).columns

Ответы [ 3 ]

0 голосов
/ 10 июля 2019

Это должно работать для вас. Пожалуйста, проверьте вышеуказанную ссылку для более подробной информации.

factor_list = df2.loc[:,~df.columns.str.startswith('FR')]
0 голосов
/ 10 июля 2019

Вы можете сделать

factor_list = df2.filter(regex = '^(?!FR_).*', axis=1).columns
0 голосов
/ 10 июля 2019

Вы были довольно близко с df.filter. В этом случае проще использовать регулярное выражение, отфильтровывая все столбцы, которые не начинаются (?!^) с FR_:

df.filter(regex='^(?!FR_)')

   Col1  Col3
0     2     8
1     0     7
2     4     1
3     2     6
4     4     8
# Example dataframe
df = pd.DataFrame({'Col1':np.random.randint(0,10,5),
                   'FR_Col2':np.random.randint(0,10,5),
                   'Col3':np.random.randint(0,10,5),
                   'FR_Col4':np.random.randint(0,10,5)})

   Col1  FR_Col2  Col3  FR_Col4
0     2        1     8        5
1     0        7     7        9
2     4        8     1        9
3     2        2     6        9
4     4        9     8        3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...