Удаление нескольких столбцов с использованием Columns.Str.Startswith - PullRequest
0 голосов
/ 06 марта 2020

У меня есть набор данных с 204 строк х 507 столбцов. Как я понимаю, для удаления столбцов, содержащих, например, слово «Собака», вы должны использовать:

df.loc[:,~df.columns.str.startswith('Dog')]

Я также понимаю, что вы можете удалить столбцы, используя несколько критериев, для Например, «Собака» и «Кошка» с использованием следующего кода «str.contains»:

df.loc[:,~df.columns.str.contains('Dog|Cat')]

Однако, кажется, что когда вы применяете «|» (или) функция «columns.str.startswith», как показано ниже, не работает, и вывод дает 204 строки x 0 столбцов

df.loc[:,~df.columns.str.startswith('Dog|Cat')]

Out 204 rows × 0 columns

Почему это? Есть ли способ удаления столбцов с использованием нескольких критериев с использованием функции "df.columns.str.startswith"?

Ответы [ 2 ]

1 голос
/ 06 марта 2020

Если хотите несколько значений в Series.str.startswith, используйте tuple, например:

df.loc[:,~df.columns.str.startswith(('Dog', 'Cat'))]
0 голосов
/ 06 марта 2020

Для пары строк я предпочитаю подход регулярного выражения:

 df.loc[:, ~df.columns.str.match('^(Dog|Cat).*')]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...