对年龄进行脱敏的方法有以下几种:
1. 年龄分组脱敏:将年龄按照一定的区间进行分组,例如0-10岁、11-20岁等,然后将实际年龄替换为对应的分组标识,如"A组"、"B组"等。
2.年龄区间:将具体的年龄转化为一个区间,例如将25岁转化为20-30岁。
3. 年龄替换脱敏:将实际年龄进行模糊化处理,例如将具体的年龄转换为年龄段,如"青少年"、"中年"、"老年"等。
4.年龄模糊化:将年龄进行模糊化处理,例如将具体的年龄四舍五入到最近的十位数,例如将27岁模糊化为30岁。
5. 年龄随机化脱敏:将实际年龄随机替换为一个在一定范围内的随机数,保持数据的统计特性。
6. 年龄哈希脱敏:使用哈希算法对实际年龄进行加密处理,将加密后的结果作为脱敏后的年龄。
7. 年龄加减法脱敏:对实际年龄进行加减法操作,例如随机加减一个固定的值,使得脱敏后的年龄与实际年龄相差不超过一定范围。
8. 年龄伪造脱敏:将实际年龄替换为一个与实际年龄相似但不准确的年龄,例如将年龄加上一个随机的偏移量。
年龄替换脱敏
#import xlwt # 先安装pip install
import datetime # 注意一定要用datetime package
import pandas as pd
def age_desensitization(data):
age_mapping = {
'0-18': '少年',
'19-30': '青年',
'31-45': '中年',
'46-60': '中老年',
'61+': '老年'
}
for i in range(len(data)):
age = data[i]
if age <= 18:
data[i] = age_mapping['0-18']
elif age <= 30:
data[i] = age_mapping['19-30']
elif age <= 45:
data[i] = age_mapping['31-45']
elif age <= 60:
data[i] = age_mapping['46-60']
else:
data[i] = age_mapping['61+']
df = pd.read_csv('D://Codes/data set/data_wuliu.csv', encoding="utf-8",sep=',')
print(df.head())
#测试数据列
ages = df['age']
# 脱敏处理
age_desensitization(ages)
# 打印脱敏后的数据
#print(ages)
print(df)
# 保存文件
#df.to_excel('D://Codes/data set/data_wulius.xlsx', index=False)
'''
中老年
中年
中老年
'''
年龄区间脱敏与年龄分组脱敏 只需要改变一下下面的分组命名,逻辑是一样的。
age_mapping = {
'0-18': '[0,1]',
'19-30': '[19,30]',
'31-45': '[31,45]',
'46-60': '[46,60]',
'61+': '[61+]'
}
'''
[46,60]
[31,45]
[46,60]
'''
年龄模糊化
import pandas as pd
df = pd.read_csv('D://Codes/data set/data_wuliu.csv', encoding="utf-8",sep=',')
print(df.head())
age_list = df['age']
# 遍历替换 调用函数
for i in range(len(age_list)):
age1 = age_list[i]
#round()对数字进行四舍五入
#把整个数字看做数轴,小数点是原点,参数的数字对应哪一位就对那一位上的数字四舍五入
age = round(age1,-1)
age_list[i] = age
print(df)
'''
50
40
50
'''
年龄随机化
#使用随机函数,指定一个范围内
age = random.randint(20, 60)