Фильтрация строк с не алфавитно-цифровыми символами - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь получить DataFrame из существующего DataFrame, содержащего только строки, в которых значения в определенном столбце (значения которого являются строками) не содержат определенного символа.

т.е. если символ, который мы неТребуется '('

Исходный фрейм данных:

   some_col my_column
0         1      some
1         2      word
2         3    hello(

Новый фрейм данных:

   some_col my_column
0         1      some
1         2      word

Я пытался df.loc['(' not in df['my_column']], но это не работает, так какdf['my_column'] - это объект Series.

Я также пробовал: df.loc[not df.my_column.str.contains('(')], что тоже не работает.

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Если вы хотите отфильтровать только этот символ:

отрицание str.contains

Выход из открытого парена.Некоторые символы можно интерпретировать как специальные символы регулярных выражений.Вы можете избежать их с помощью обратной косой черты.

df[~df.my_column.str.contains('\(')]

   some_col my_column
0         1      some
1         2      word

str.match все не открыто-парен

Кстати, это плохая идея!Проверка всей строки, что это не символ с регулярным выражением, является грубой.

df[df.my_column.str.match('^[^\(]*$')]

   some_col my_column
0         1      some
1         2      word

Понимание с использованием in

df[['(' not in x for x in df.my_column]]

   some_col my_column
0         1      some
1         2      word
0 голосов
/ 30 мая 2018

Вы ищете str.isalpha:

df[df.my_column.str.isalpha()]

   some_col my_column
0         1      some
1         2      word

Аналогичный метод - str.isalnum, если вы хотите сохранить буквы и цифры.

Если вы хотите обрабатывать буквы и пробельные символы, используйте

df[~df.my_column.str.contains(r'[^\w\s]')]

   some_col my_column
0         1      some
1         2      word

Наконец, если вы хотите удалить пунктуацию в целом, я написал здесь вопросы и ответы, которые могут бытьполезно прочитать: Быстрое удаление пунктуации с пандами

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