データを完全に匿名化するには、名前にランダムなエイリアスが必要です。ハッシュはそのために適していますが、各名前を整数にマップするだけの場合は、次のようにすることができます。
from random import shuffle
data = [("Anna", "Joe"), ("Anna", "Mark"), ("Mark", "Mindy"), ("Mindy", "Joe")]
names = list(set(x for pair in data for x in pair))
shuffle(names)
aliases = dict((k, v) for v, k in enumerate(names))
munged = [(aliases[a], aliases[b]) for a, b in data]
それはあなたに次のようなものを与えるでしょう:
>>> data
[('Anna', 'Joe'), ('Anna', 'Mark'), ('Mark', 'Mindy'), ('Mindy', 'Joe')]
>>> names
['Mindy', 'Joe', 'Anna', 'Mark']
>>> aliases
{'Mindy': 0, 'Joe': 1, 'Anna': 2, 'Mark': 3}
>>> munged
[(2, 1), (2, 3), (3, 0), (0, 1)]
次に、(必要に応じて)エイリアスから名前を取得できます。その逆も可能です。
>>> aliases["Joe"]
1
>>> names[2]
'Anna'