我想用 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()
但是尽管有文档我还是没有完成
最佳答案
作为一个人为的例子,考虑
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
您可以将此结果分配回去。
关于python - 交换 Pandas 字符串列中的两个子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53800557/