Python, удалить все неалфавитные символы из строки только для указанных слов - PullRequest
1 голос
/ 12 января 2020

Я пытаюсь заменить некоторые значения alphanumeri c в столбце под названием «Теги», которые выглядят примерно так, например, как «PSPK01012L9_microsoft_ab c», на «microsoft_ab c»

Я пытался Есть несколько способов сделать это с помощью регулярного выражения, но оно меняет все значения во всей этой строке:

import re

s = dataframe['Tags']
dataframe['Tags'] = re.sub('[A-Za-z0-9_]*_microsoft_abc', 'microsoft_abc', str(s))
dataframe['Tags'] = re.sub('[A-Za-z0-9_]*_google_abc', 'google_abc', str(s))


Было бы здорово, если бы кто-то мог мне помочь. Newb ie in python здесь: (

желаемый вывод в моем csv cloumn 'Теги':

IAM~3rd                            
IAM~3rd, IAM~KI-000                 
IAM~1st                             
IAM~KI-000                          
IAM~3rd, IAM~KI-057                
microsoft_abc
google_abc

Токовый выход с вышеприведенным регулярным выражением :

dataframe['Tags'].value_counts()
0       0       microsoft_abc  google_abc\...\n1       0       microsoft_abc  google_abc\...\n2       0       microsoft_abc  google_abc\...\n3       0       microsoft_abc  google_abc\...\n4       0       microsoft_abc  google_abc\...\n                              ...                        \n4762    0       microsoft_abc  google_abc\...\n4763    0       microsoft_abc  google_abc\...\n4764    0       microsoft_abc  google_abc\...\n4765    0       microsoft_abc  google_abc\...\n4766    0       microsoft_abc  google_abc\...\nName: Tags, Length: 4767, dtype: object    4767

1 Ответ

0 голосов
/ 12 января 2020
dataframe['new_tags'] = dataframe['Tags'].apply(lambda x: ','.join(x.split('_')[1:]).replace(',','_'))

этот фрагмент создает новый столбец с желаемым выводом

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