gpt4 book ai didi

csv - 2TB CSV 中帐号的匿名化

转载 作者:行者123 更新时间:2023-12-02 04:44:26 26 4
gpt4 key购买 nike

我有 ~2TB 的 CSV,其中前 2 列 包含两个 ID 号。这些需要匿名,以便数据可以用于学术研究。匿名化可以(但不一定)是不可逆的。这些不是病历,所以我不需要最奇特的密码算法。

问题:

标准散列算法生成非常长的字符串,但我将不得不做一堆 ID 匹配(即“对于包含 ID XXX 的数据中的行的子集,做...)”来处理匿名数据,所以这个不理想。有没有更好的办法?

例如,如果我知道有大约 1000 万个唯一帐号,是否有使用整数集 [1:1000 万] 作为替换/匿名 ID 的标准方法?

计算限制是数据可能会在 32 核 ~500GB 服务器计算机上匿名化。

最佳答案

我假设您想要进行一次传递,一个带有 ID 的 CSV数字作为输入,另一个带有匿名数字的 CSV 作为输出。我会还假设唯一 ID 的数量大约为 10百万或更少。

我认为最好使用一些完全任意的从一组 ID 号 (N) 到一组的一对一函数去识别化数字 (D)。这样会更安全。如果你用了一些某种哈希函数,对手知道了哈希是什么,N 中的数字可以很容易地恢复字典攻击。相反,我建议使用一个简单的查找表:ID 1234567映射到去识别号码 4672592 等。对应关系是存储在另一个文件中,没有该文件的对手不会能做很多事。

如果您描述的机器上有 1000 万条或更少的记录,这不是什么大问题。伪 Python 中的草图程序:

mapping = {}
unused_numbers = list(range(10000000))

while data:
read record
for each ID number N in record:
if N in mapping:
D = mapping[N]
else:
D = choose_random(unused_numbers)
unused_numbers.del(D)
mapping[N] = D
replace N with D in record
write record

write mapping to lookup table file

关于csv - 2TB CSV 中帐号的匿名化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34462389/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com