Удаление нескольких символов и объединение в столбцы панд - PullRequest
0 голосов
/ 15 октября 2018

Я пытаюсь отформатировать эту строку, но исключая символы: ( )

My_name (1)
Your_name (2)

Желаемый вывод:

My_name_ID_1
Your_name_ID_2

Это столбец моего фрейма данных. Я пытался заменить только один символ за раз, и я также хотел бы присоединиться позже.

Могу ли я присоединиться и заменить уже эти оба символа?

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Вы также можете использовать:

s.str.replace(r"\(.*\)","").str.strip()+"_ID_"+s.str.replace(r'[^(]*\(|\)[^)]*', '')

Однако, ответ @ user3483203 лучше.:)

0 голосов
/ 15 октября 2018

Вы можете использовать регулярное выражение с str.replace:

s.str.replace(r'(\w+)\s+\(([^\)])\)', r'\1_ID_\2')

0      My_name_ID_1
1    Your_name_ID_2
Name: 0, dtype: object

Альтернатива:

s.str.replace(r'\s+\(([^\)])\)', r'_ID_\1')

Если вы хотитебыть менее явным.


Regex Объяснение

(                          # matching group 1
  \w+                      # matches any word character
)                          
\s+                        # matches one or more spaces
\(                         # matches the character (
(                          # matching group 2
  [^\)]                    # matches any character that IS NOT )
) 
\)                         # matches the character )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...