我有一个数据框架
Group ID
1 09239820
2 2872498938
2 1267
3 23219823983
3 267839236
4 33287442
我想用字母
替换ID列中的第1、2和4个数字Replace 1st with N
Replace 2nd with X
Replace 4TH with D
预期输出:
Group ID
1 NX2D9820
2 NX7D498938
2 NX6D
3 NX2D9823983
3 NX7D39236
4 NX2D7442
您可以将.str.replace
与捕获的组和反向引用一起使用:
df.ID = df.ID.astype(str)
df.ID.str.replace('..(.).(.*)', r'NX1D2')
0 NX3D820
1 NX7D498938
2 NX6D
3 NX2D9823983
4 NX7D39236
5 NX2D7442
Name: ID, dtype: object
您可以使用正则表达式。
^..(.).
匹配前4个字符,并捕获第三个字符,使用反向引用1
:
df['ID'] = df['ID'].astype(str).str.replace('^..(.).', r'NX1D')
Group ID
0 1 NX3D820
1 2 NX7D498938
2 2 NX6D
3 3 NX2D9823983
4 3 NX7D39236
5 4 NX2D7442