Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫只从右边替换_Python_Pandas_Replace - Fatal编程技术网

Python 熊猫只从右边替换

Python 熊猫只从右边替换,python,pandas,replace,Python,Pandas,Replace,给定以下数据帧: import pandas as pd d = pd.DataFrame({'Last, First':['Jim Jrower','Chauncy Peppertooth, Jr']}) Last, First 0 Jim Jrower 1 Chauncy Peppertooth, Jr 我想删除“简孝儒”,如果它出现在字符串的右侧,而不是在中间。 我不能用 d['Last,First'].str.rstrip(“

给定以下数据帧:

import pandas as pd
d = pd.DataFrame({'Last, First':['Jim Jrower','Chauncy Peppertooth, Jr']})
               Last, First
0               Jim Jrower
1  Chauncy Peppertooth, Jr

我想删除“简孝儒”,如果它出现在字符串的右侧,而不是在中间。 我不能用

d['Last,First'].str.rstrip(“Jr”)

因为这将从右侧删除“J”和“r”的所有实例

我不能用

d['Last, First'].str.replace("Jr","")

因为如果它出现在字符串的中间,那么它将取“简孝儒”。 如果我能在最后摆脱那个讨厌的“Jr”,我就能做到

d['Last,First'].str.rstrip(“,”)
处理结尾的逗号


提前谢谢

使用
str.用正则表达式替换

d.iloc[:, 0].str.replace(', Jr$', '')
#                             |
#        matches end of line /

0             Jim Jrower
1    Chauncy Peppertooth
Name: Last, First, dtype: object

使用正则表达式模块,您可以执行以下操作

例如:

import re
import pandas as pd

def example(somestring):
    temp = somestring.lower()
    result = re.search(r'\sjr$', temp)
    if result:
        return somestring[:result.start()]
    else:
        return somestring


d = pd.DataFrame({'Last, First':['Jim Jrower','Chauncy Peppertooth, Jr', 'jonathan jrureiagh, jr']})

d
Out[58]: 
            Last, First
0               Jim Jrower
1  Chauncy Peppertooth, Jr
2   jonathan jrureiagh, jr

d.applymap(example)
Out[59]: 
            Last, First
0            Jim Jrower
1  Chauncy Peppertooth,
2   jonathan jrureiagh,

我是否也可以使用.str.replace(“,Jr$| Jr$”,”)来解释Jr和Jr?我只是验证了我可以,但由于某种原因,我没有在我的实际情况下工作。如果有什么值得注意的,我会再发一个问题。谢谢使用
d.iloc[:,0].str.replace(',J[rR]$,'')
在我这边仍然不起作用。我一定是做错了什么,但我看不出来。我使用的是列名而不是.iloc[:,0],因为我有>1列,只想将其应用于该列。不过我想这没关系。否?可能是字符串末尾的空格
d.iloc[:,0].str.replace(',J[rR]\s*$,'')