假设我有一只熊猫数据和一个专栏“名字”。我想匿名列和隐藏身份。我可以做这样的事,
df['nickname'] = 'P ' + pd.Series(pd.factorize(df['name'])[0] + 1).astype(str)但它给了我这个:
name nickname
frank miller P 1
john cena P 2
john cena P 2
rock P 3 以上是一个可以接受的匿名,但不是我所需要的。有什么办法能让我找到下面想要的桌子吗?也许是内置的python函数,或者已经实现了这样的东西的人?
想要的表(带有随机昵称,但相同输入的输出):
name nickname
frank miller Tiko
john cena Bozo
john cena Bozo
the rock Hana 发布于 2020-01-27 10:19:58
您可以为此使用Faker包,为您生成一个虚拟名称。
安装
# pip
pip install Faker
# anaconda
conda install -c conda-forge faker示例
from faker import Faker
faker = Faker()
# seed the random generator to produce the same results
Faker.seed(4321)
dict_names = {name: faker.name() for name in df['name'].unique()}
df['nickname'] = df['name'].map(dict_names)输出
name nickname
0 frank miller Jason Brown
1 john cena Jacob Stein
2 john cena Jacob Stein
3 rock Cody Brown您还可以用来自某些国家的名称初始化Faker:
faker = Faker(['it_IT', 'de_DE', 'sv_SE'])
dict_names = {name: faker.name() for name in df['name'].unique()}
df['nickname'] = df['name'].map(dict_names)输出
name nickname
0 frank miller Nadeschda Finke
1 john cena Marcus Warmer
2 john cena Marcus Warmer
3 rock Sophia Squarcionehttps://stackoverflow.com/questions/59928902
复制相似问题