繁体   English   中英

如果以特定字符串开头,则去除列值 pandas

[英]Strip colum values if startswith a specific string pandas

我有一个 pandas 数据框(示例)。

id  name
1   Mr-Mrs-Jon Snow
2   Mr-Mrs-Jane Smith
3   Mr-Mrs-Darth Vader

我想从 dataframe 中去掉“Mr-Mrs-”。即 output 应该是:

id  name
1   Jon Snow
2   Jane Smith
3   Darth Vader

我尝试使用

df['name'] = df['name'].str.lstrip("Mr-Mrs-")

但是在这样做的同时,某些行中的某些名称字母也会被删除。

我不想为每一行运行一个循环和 do.loc,是否有更好/优化的方法来实现这一点?

不要剥离,使用字符串锚点 ( ^ ) 的开头replace

df['name'] = df['name'].str.replace(r"^Mr-Mrs-", "", regex=True)

removeprefix

df['name'] = df['name'].str.removeprefix("Mr-Mrs-")

Output:

id         name
1      Jon Snow
2    Jane Smith
3   Darth Vader

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM