Регулярное выражение для удаления не буквенно-цифровых символов не работает - PullRequest
0 голосов
/ 16 марта 2019

Преобразован столбец информационного кадра Pandas в список.Затем в нижнем регистре все элементы в списке.Теперь хочется сохранить только алфавиты в элементах списка.Я написал регулярное выражение для этого.Регулярное выражение не работает.

df_smer_orig = pd.read_csv('sample.csv', engine='python')
df_smer = df_smer_orig['Item'].tolist()
df_smer = [x.lower() for x in df_smer] 

for x in df_smer:
    print(x)
    regex = re.compile('[^a-zA-Z]')
    regex.sub('', x)
    print(x)

print(df_smer)

Частичный вывод кода, который показывает, что регулярное выражение не работает:

agarbathi / incense sticks
agarbathi / incense sticks
worcestershire sauce- 295ml
worcestershire sauce- 295ml

Ответы [ 2 ]

1 голос
/ 16 марта 2019

Ваш код верен, но вы должны присвоить результат переменной, чтобы получить желаемый результат.

df_smer_orig = pd.read_csv('sample.csv', engine='python')
df_smer = df_smer_orig['Item'].tolist()
df_smer = [x.lower() for x in df_smer] 

for x in df_smer:
    print(x)
    regex = re.compile('[^a-zA-Z]')
    x = regex.sub('', x)
    print(x)

print(df_smer)
1 голос
/ 16 марта 2019

Это верно?

text = re.sub(r'[^a-zA-Z]', '', text)

демо: http://tpcg.io/ZADE7f

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