我有一个熊猫数据帧,其中包含如下字符串:
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