有一个 Series,值为身份证号码,需要把生日部分(中间 8 位)替换成星号。
import pandas as pd
ser = pd.Series(['123456199001011234', '789012198502027890'])
ser
参考答案:用 str.replace 正则分组,把身份证分成 前6位 / 中间8位 / 后4位,中间段替换成 ******:
ser.str.replace(r'^(\d{6})(\d{8})(\d{4})',
r'\1******\3',
regex=True)
输出:
0 123456******1234
1 789012******7890
dtype: object