看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gr99123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
(编码题)在处理用户隐私数据时,经常需要对敏感信息进行脱敏处理。给定以下包含手机号的数据,要求使用.str.replace()方法进行脱敏处理。
import pandas as pd
data = {'phone': ['13800138000',
'13912345678',
'15098765432',
'18600001111']
}
df = pd.DataFrame(data)
print(df)
输出结果:
phone
0 13800138000
1 13912345678
2 15098765432
3 18600001111
具体要求:
"****"代码如下:
import pandas as pd
data = {'phone': ['13800138000',
'13912345678',
'15098765432',
'18600001111']
}
df = pd.DataFrame(data)
# 使用正则表达式替换中间4位
df['脱敏手机号'] = (
df.phone
.str.replace(r'(\d{3})\d{4}(\d{4})',
r'\1****\2', regex=True
)
)
print(df)
输出结果:
phone 脱敏手机号
0 13800138000 138****8000
1 13912345678 139****5678
2 15098765432 150****5432
3 18600001111 186****1111
参考代码的思路逻辑:使用正则表达式模式r'(\d{3})\d{4}(\d{4})'匹配手机号,其中(\d{3})捕获前3位,\d{4}匹配中间4位(待替换部分),(\d{4})捕获后4位。替换模式r'\1****\2'中,\1引用第一个捕获组(前3位),\2引用第二个捕获组(后4位),中间用"****"替换原内容。regex=True参数启用正则表达式功能,实现精确的字符串替换操作。
(完)
更新时间:2025-09-19 09:48:22 标签:pandas python 替换 手机号