Python使用openpyxl和pandas处理Excel文件实现数据脱敏案例一则

问题描述:

所谓数据脱敏,是指对个人的学号、姓名、身份证号、银行账号、电话号码、家庭住址、工商注册号、纳税人识别号等敏感信息进行隐藏、随机化或删除,防止在数据交换或公开场合演示时泄露隐私信息,是数据处理时经常谈到的一个概念,也是大数据伦理学中需要考虑的一个重要内容。不同的业务类型、数据和使用场景中,敏感数据的定义是变化的,某个信息在一个场景下是敏感的需要脱敏处理而在另一个场景中必须保留原始数据是正常的。

本文以学生考试数据为例,学生在线机考(后台发送“小屋刷题”可以下载刷题和考试软件)结束后导出的原始数据中包含学号、姓名等个人信息,在某些场合下使用这些数据时,截图需要打上马赛克,或者替换原始数据中的这两个信息进行脱敏,原始数据格式如下:

 在原始数据中,每个学生的考试数据有很多条,脱敏处理后这些数据的学号和姓名被随机化,但仍需要保证是同一个学生的数据,处理后数据格式如下:

 代码:

import pandas as pd
##from  sqlalchemy import  create_engine
from random import  choices
from string  import ascii_letters,digits

path = r'E:\D\学生成绩目录\XXB.xlsx'

df  =pd.read_excel(path)


ids =set(df.身份证号) ###列名
names =set(df.姓名)
csds =set(df.出生地) 


id_mapping ={si:''.join(choices(digits,k=18))for si in ids}
df.身份证号  =df.身份证号.map(id_mapping)

name_mapping ={name:''.join(choices(ascii_letters,k=6)) for name in names}
df.姓名  =df.姓名.map(name_mapping)

csd_mapping ={csd:''.join(choices(ascii_letters,k=6)) for csd in csds}
df.出生地  =df.出生地.map(csd_mapping)





df.to_excel(r'E:\学生成绩目录\XXB221.xlsx',sheet_name='sheet1',index=False)
print('运行成功!')







 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

youyouxiong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值