Python ile Veri Gizliliği ve Anonimleştirme
Rebeca Gonzalez
Data engineer
Duyarlı olmayan kişisel veriler de yarı tanımlayıcı olabilir.

Diğer yarı tanımlayıcılarla birleşince tanımlayıcı olur.


Veri ifşası riskini azaltmak için yarı tanımlayıcılara yönelik anonimleştirme teknikleri.

Orijinal DataFrame
name phone
0 Cassandra Nelson 4399406975395
1 Brian Moss 0389407128613
2 Melody Gill 8283308773967
3 Sandra Huber 4366608954250
4 Patricia Webster 4466462475574
İsimleri maskelenmiş DataFrame
name phone
0 xxxx 4399406975395
1 xxxx 0389407128613
2 xxxx 8283308773967
3 xxxx 4366608954250
4 xxxx 4466462475574
Hassas değerleri "x" gibi karakterlerle değiştirmeye veri maskeleme denir.
# Explore the DataFrame
df.head()
country card_number email
0 Finland 3546746666030419 [email protected]
1 Belarus 4303032415762821 [email protected]
2 Turkmenistan 4536883671157 [email protected]
3 Puerto Rico 3568819286614160 [email protected]
4 Angola 2514167462583016 [email protected]
# Kart numarası sütununu tek tip maskele df['card_number'] = '****'# Ortaya çıkan DataFrame'i gör df.head()
country card_number email
0 Finland **** [email protected]
1 Belarus **** [email protected]
2 Turkmenistan **** [email protected]
3 Puerto Rico **** [email protected]
4 Angola **** [email protected]

# E-postada kullanıcı adını maskele df2['email'] = df2['email'].apply(lambda s: s[0] + '****' + s[s.find('@'):] )# Ortaya çıkan takma adlı veriyi gör df2.head()
country card_number email
0 Finland 3546746666030419 f****@gmail.com
1 Belarus 4303032415762821 m****@gmail.com
2 Turkmenistan 4536883671157 a****@gmail.com
3 Puerto Rico 3568819286614160 k****@gmail.com
4 Angola 2514167462583016 d****@gmail.com

# Faker sınıfını içe aktar from faker import Faker# Sahte veri üreteci oluştur fake_data = Faker()# Kredi kartı numarası üret fake_data.credit_card_number()
3542216874440804
# Lambda ile yeni üretilen verilerle kart numarasını maskele df['card_number'] = df['card_number'].apply(lambda x: fake_data.credit_card_number())# Ortaya çıkan takma adlı veriyi gör df.head()
country card_number email
0 Finland 3596625386355448 [email protected]
1 Belarus 376297265347524 [email protected]
2 Turkmenistan 4377494880888682 [email protected]
3 Puerto Rico 30553931809810 [email protected]
4 Angola 4241735748382 [email protected]
fake_data.name()
'Kelly Clark'
fake_data.name_male()
'Antonio Henderson'
fake_data.name_female()
'Jennifer Ortega'
Python ile Veri Gizliliği ve Anonimleştirme