La dernière fois qu'on m'a demandé d'anonymiser au travail, j'ai eu beaucoup de problèmes. En premier lieu, la plupart des données ont été anonymisées au moment de la réception des données, et presque aucune donnée n'a été reçue qui ne soit pas anonymisée.
Quand je l'ai recherché, il y avait une méthode de hachage, mais il y avait peu d'informations qui supposaient le format de la trame de données. Puisqu'il s'agit de données confidentielles, vous devrez peut-être le faire dans un environnement hors ligne, il est donc supposé que la bibliothèque est préinstallée.
Cette fois, je voudrais résumer le code pour la prochaine fois, en tenant compte des points de réflexion.
La bibliothèque de hachage utilise fastdigest. Spécifiez uniquement le csv à importer et le nom de la colonne que vous souhaitez hacher. Vous pouvez vérifier et travailler un par un de manière interactive.
hashing.R
#Installation de la bibliothèque
install.packages("fastdigest")
#Importation de bibliothèque
library("fastdigest")
#Créez votre propre fonction de hachage à l'aide de fastdigest
hash_algo <- function(data){
x <- paste("abc" ,data)
x <- fastdigest(x)
return(x)
}
#Lire les données
path <- ""
df <- read.csv(path, header=T)
#Confirmation de lecture
str(df)
#Stockez le nom de la colonne que vous souhaitez hacher
hash_list <- c("", "",...)
#Hashing
for (i in 1:length(hash_list)){
df[,hash_list[i]] <- sapply(df[,hash_list[i]], fastdigest)
}
#exportation
write.csv(df,"hashed.csv")
Utilisez les pandas et hashlib pour le hachage. Python veut terminer rapidement avec un script. Décidez simplement du nom de la colonne que vous souhaitez hacher à l'avance, spécifiez le chemin et exécutez le code.
hashing.py
import os
import sys
import pandas as pd
import hashlib
#Stockez le nom de la colonne que vous souhaitez hacher
hash_list = []
#Fonction de règle de hachage
def hash_algo(data):
#Si vous écrivez ici de manière compliquée, il sera difficile d'inverser la conversion
x = "abc" + str(data)
x = hashlib.sha256(x.encode("utf-8")).hexdigest()
return x
#Lire pour sortir
def hashing(path, hash_list=hash_list):
#Lire les données
df = pd.read_csv(path, encoding='utf-8')
#Processus de hachage
for i in range(0,len(hash_list)):
df[hash_list[i]] = list(map(hash_algo, df[hash_list[i]]))
#Exporter le fichier
outpath = os.path.dirname(path)
outfilename = os.path.splitext(os.path.basename(path))[0] + "_hashed.csv"
df.to_csv( outpath + "/" + outfilename, index=False)
if __name__ == "__main__" :
hashing(sys.argv[1])
S'il vous plaît laissez-moi savoir s'il existe un moyen plus intelligent.
Recommended Posts