将 pandas 数据帧列中的字符串从以 R 结尾替换为以 Right 开头



我有一个熊猫数据帧,其中包含如下字符串:

AAA BBB CCC R

我希望将其更改为:

Right AAA BBB CCC.

我试过:df['A'].str.replace('R$', '^Right')但它返回:

AAA BBB CCC^Right

使用灵活的pandas.Series.where方法:

In [103]: df = pd.DataFrame({'A': ['AAA BBB CCC R', 'aaa bbb dd rr']})                                                       
In [104]: df.A.where(~df.A.str.endswith('R'), "Right "+ df.A.str[:-2].astype(str) + ".", inplace=True)                       
In [105]: df                                                                                                                 
Out[105]: 
A
0  Right AAA BBB CCC.
1       aaa bbb dd rr

R之前将Series.str.replace与选择值一起使用,然后在匹配的子字符串前面加上Right

df.A = df.A.str.replace(r'(.+) R$', r'Right 1')
print (df)
A
0  Right AAA BBB CCC

最新更新