我想在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()
但是尽管有文档,但我还是没有完成
答案 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
您可以将此结果分配回去。