繁体   English   中英

如果在熊猫的字符串结尾处删除某些字符

[英]Remove certain characters if on end of string in Pandas

我有一个名称列表,其中所有大写字母,删除的空格和非字母字符都可以轻松地与另一个列表合并-两者都在pandas数据框中。

数据框的名称中有一个名称的末尾附加了JR ,而另一数据框中的名称中不包含该后缀。 如何从两者中剥离所有JR

我尝试了以下内容:

df['NAME'] = df['NAME'].str.replace('JR','')

但是我认为这会删除所有JR实例,而不是最后两个字符时。 任何帮助,将不胜感激。

你需要:

def jr_replace(x):
    match = re.sub(r'JR$',"",x)
    return match

df['NAME'] = df['NAME'].apply(jr_replace)

print(df)

您可以使用正则表达式替换:

import pandas as pd

df = pd.DataFrame(data=['Name JR', 'Name JR Middle', 'JR Name'], columns=['name'])
df['name'] = df.name.str.replace(r'\bJR$', '', regex=True).str.strip()

print(df)

产量

             name
0            Name
1  Name JR Middle
2         JR Name

模式'\\bJR$'仅在字符串的末尾匹配单词JR。

一种选择是使用string.endswith删除JR ,并将其从包含str对象的行中删除:

m = s.str.endswith('JR')
s.loc[m] = s.loc[m].str[:-2]

使用@danielmesejo的数据框:

df = pd.DataFrame(data=['Name JR', 'Name JR Middle', 'JR Name'], columns=['name'])
m = df.name.str.endswith('JR')
df.name.loc[m] =  df.name.loc[m].str[:-2]

            name
0           Name 
1  Name JR Middle
2         JR Name

暂无
暂无

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

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