Pandas:如何用另一个值替换一个int子字符串

我想将字符串中的第一个整数减 1

我有以下数据框:

No              pl.     Expected              
B2bb-hb        0.56     0.35      
F378cq-h1      0.21     0.62   
W30mm2-fpr2    8.17     0.76    
Z51mm1-yu2     2.81     0.91     

我希望输出是:

No              pl.     Expected              
B1bb-hb        0.56     0.35      
F377cq-h1      0.21     0.62   
W29mm2-fpr2    8.17     0.76    
Z50mm1-yu2     2.81     0.91  

我尝试了以下代码:

df['No'] = df['No'].str.replace('(d+)','(d+)-int(1)')

但我最终得到了:

No                       pl.     Expected              
B(d+)-int(1)b-h         0.56     0.35      
F(d+)-int(1)cq-h1       0.21     0.62   
W(d+)-int(1)mm2-fpr2    8.17     0.76    
Z(d+)-int(1)mm1-yu2     2.81     0.91  

请问如何修改代码?

提前致谢!

回答

pandas.Series.str.replacelambda和一起使用的一种方法n

df["No"].str.replace("(d+)", lambda x: str(int(x.group(1))-1), n=1)

输出:

0        B1bb-hb
1      F377cq-h1
2    W29mm2-fpr2
3     Z50mm1-yu2
Name: No, dtype: object


以上是Pandas:如何用另一个值替换一个int子字符串的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>