Pandas Dataframe фильтрует строки только по одному столбцу - PullRequest
0 голосов
/ 04 января 2019

Я хочу отфильтровать фрейм данных, сохранив только те строки, которые соответствуют шаблону регулярных выражений в данном столбце.Пример в документации только фильтрует, ища это регулярное выражение в каждом столбце в фрейме данных ( документация для фильтрации )

Так как я могу изменить следующий пример

df.filter(regex='^[\d]*', axis=0)

примерно так: (который ищет регулярное выражение только в указанном столбце)

df.filter(column='column_name', regex='^[\d]*', axis=0)

Ответы [ 2 ]

0 голосов
/ 04 января 2019

Используйте метод векторизованной строки contains() или match() - см. Проверка строк, которые соответствуют или содержат шаблон :

df[df.column_name.str.contains('^\d+')]

или

df[df.column_name.str.match('\d+')]    # Matches only start of the string

Обратите внимание, что я удалил лишние скобки ([]) и заменил * на +, потому что \d* будет всегда соответствовать , так как оно соответствует ноль вхождений тоже (так называемое совпадение нулевой длины .)

0 голосов
/ 04 января 2019

Фильтруйте DataFrame, используя логическую маску из данного столбца и шаблон регулярного выражения следующим образом: df[df.column_name.str.contains('^[\d]*', regex=True)]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...