我想将字符串中的第一个整数减 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.replace
与 lambda
和 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
https://stackoverflow.com/questions/65556735/