首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用随机的“昵称”来匿名大熊猫的名字栏

用随机的“昵称”来匿名大熊猫的名字栏
EN

Stack Overflow用户
提问于 2020-01-27 10:06:47
回答 1查看 1K关注 0票数 1

假设我有一只熊猫数据和一个专栏“名字”。我想匿名列和隐藏身份。我可以做这样的事,

代码语言:javascript
复制
df['nickname'] = 'P ' + pd.Series(pd.factorize(df['name'])[0] + 1).astype(str)

但它给了我这个:

代码语言:javascript
复制
name       nickname  
frank miller   P 1       
john cena      P 2       
john cena      P 2       
rock           P 3       

以上是一个可以接受的匿名,但不是我所需要的。有什么办法能让我找到下面想要的桌子吗?也许是内置的python函数,或者已经实现了这样的东西的人?

想要的表(带有随机昵称,但相同输入的输出):

代码语言:javascript
复制
name       nickname  
frank miller   Tiko       
john cena      Bozo       
john cena      Bozo       
the rock       Hana       
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-27 10:19:58

您可以为此使用Faker包,为您生成一个虚拟名称。

安装

代码语言:javascript
复制
# pip
pip install Faker

# anaconda
conda install -c conda-forge faker

示例

代码语言:javascript
复制
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)

输出

代码语言:javascript
复制
           name     nickname
0  frank miller  Jason Brown
1     john cena  Jacob Stein
2     john cena  Jacob Stein
3          rock   Cody Brown

您还可以用来自某些国家的名称初始化Faker:

代码语言:javascript
复制
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)

输出

代码语言:javascript
复制
           name           nickname
0  frank miller    Nadeschda Finke
1     john cena      Marcus Warmer
2     john cena      Marcus Warmer
3          rock  Sophia Squarcione
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59928902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档