在熊猫字符串列中交换两个子字符串

时间:2018-12-16 08:20:30

标签: python python-3.x pandas dataframe

我想在Pandas DataFrame中将字符串替换为其自身的一部分。

示例:

MSc Joe L. Scott更改为Joe L. Scott MSc

因此只需要移动MSc。我可以使用正则表达式解决此问题,但不知道如何使用Pandas DataFrame进行修复

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

我在想这样的事情(但是这里的to_replacevalue是什么?):

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

或使用DataFrame.sub()

但是尽管有文档,但我还是没有完成

1 个答案:

答案 0 :(得分:2)

作为一个人为的例子,考虑

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

您可以将此结果分配回去。

相关问题