簡體   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