Bảo mật dữ liệu và Ẩn danh trong Python
Rebeca Gonzalez
Data engineer


Chỉ một bản ghi có giá trị nhân khẩu học của thống đốc.
Xóa hết thông tin nhân khẩu học sẽ làm dữ liệu vô dụng cho phân tích.
Có giải pháp trung hòa để các giá trị này không còn độc nhất trong dữ liệu không?
$$ $$ $$ $$ $$ $$ Ít nhất k cá nhân trong bộ dữ liệu chia sẻ tập thuộc tính có thể dùng để nhận dạng mỗi người.

2-anonymous:
ZIP code Age
0 4217 34
1 4217 34
2 1742 77
3 1742 77
Mọi tổ hợp giá trị của các cột nhận dạng trong dữ liệu xuất hiện ở ít nhất k bản ghi.
Không 2-anonymous:
ZIP code Age
0 4217 34
1 4217 34
2 1742 77
3 1743 77

# Explore DataFrame
medical_df.head()
Age Department Condition
0 34 Marketing Anxiety disorders
1 46 Finance Flu
2 41 Finance Flu
3 62 Marketing Anxiety disorders
4 44 Marketing Anxiety disorders
Thuộc tính riêng tư:
# Tính số tổ hợp duy nhất của Age và Department
medical_df.groupby(['Age','Department']).size().reset_index(name='Count')
Age Department Count
0 30 Production 2
1 31 Marketing 1
2 32 Marketing 1
3 32 Production 1
4 33 Production 1
5 34 Finance 1
6 34 Marketing 1
7 34 Production 1
8 35 Marketing 1
9 36 Finance 2
10 38 Finance 1
11 38 Production 1
# Khái quát hóa Age bằng 4 khoảng medical_df['Age_group'] = pd.cut(medical_df['Age'], bins=4)# Xem dữ liệu với các khoảng medical_df.head()
Age Department Condition Age_group
0 34 Marketing Anxiety disorders (29.964, 39.0]
1 46 Finance Flu (39.0, 48.0]
2 41 Finance Flu (39.0, 48.0]
3 62 Marketing Anxiety disorders (57.0, 66.0]
4 44 Marketing Anxiety disorders (39.0, 48.0]
# Tính số tổ hợp duy nhất của Age và Department
medical_df.groupby(['Age_group','Department']).size().reset_index(name='Count')
Age_group Department Count
0 (29.964, 39.0] Finance 4
1 (29.964, 39.0] Marketing 4
2 (29.964, 39.0] Production 6
3 (39.0, 48.0] Finance 8
4 (39.0, 48.0] Marketing 5
5 (39.0, 48.0] Production 4
6 (48.0, 57.0] Finance 3
7 (48.0, 57.0] Marketing 2
8 (48.0, 57.0] Production 4
# Đặt k = 2 để có bộ dữ liệu 2-anonymous k = 2# Tính số tổ hợp duy nhất của Age và Department df_count = medical_df.groupby(['Age_group','Department']).size().reset_index(name='Count')# Lọc các hàng có Count < k df_count[df_count['Count'] < k]
Age_group Department Count
Bảo mật dữ liệu và Ẩn danh trong Python