Замена двух подстрок в столбце строки панды - PullRequest
0 голосов
/ 16 декабря 2018

Я бы хотел заменить строку частью себя в Pandas DataFrame.

Пример:

Изменить MSc Joe L. Scott на Joe L. Scott MSc

Итактолько MSc должен быть перемещен.Я могу исправить это с помощью регулярного выражения, но не знаю, как это сделать с помощью Pandas DataFrame

result = re.sub(r'(MSc)(.*)' , r'\2 \1',s)

Я думал о чем-то вроде этого (но что здесь to_replace и value?):

['Name_modified'].replace(regex=True, inplace=True, to_replace= **??**, value=**??**)

Или используя DataFrame.sub()

Но, несмотря на документацию, я не могу это сделать

1 Ответ

0 голосов
/ 16 декабря 2018

В качестве надуманного примера рассмотрим

df = pd.DataFrame({'Name' : ['MSc Joe L. Scott', 'BSc J. Doe']})
df
               Name
0  MSc Joe L. Scott
1        BSc J. Doe

Здесь вы можете использовать str.replace с обратными ссылками.Это может легко обрабатывать несколько различных обозначений.

designations = ['MSc', 'BSc']
df['Name_modified'] = df['Name'].str.replace(
    rf"^({'|'.join(designations)})\s(.*)$", r"\2 \1")

df
               Name     Name_modified
0  MSc Joe L. Scott  Joe L. Scott MSc
1        BSc J. Doe        J. Doe BSc

Вы можете присвоить этот результат обратно.

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