我有两个数据框,其中一个包含宠物 ID 和名称,另一个包含用户的 ID 和他们喜欢的宠物的 ID 列表。我想把它变成一个字典,其中键是用户,值是他们喜欢的所有宠物的名字。
id name
0 4 Bert
1 5 Ernie
2 6 Jeff
3 7 Bob
4 8 Puppy
5 9 Socks
6 12 Cyoot
user_email likes
0 matt@google.com [4, 5, 6, 7, 8, 9, 12]
1 gabe@google.com [4, 8, 9, 6, 5, 12]
最佳答案
据我了解,你可以试试:
d= df.set_index('id')['name'].to_dict()
df1.likes=df1.likes.apply(lambda x: [d.get(item,item) for item in x])
print(df1)
user_email likes
0 matt@google.com [Bert, Ernie, Jeff, Bob, Puppy, Socks, Cyoot]
1 gabe@google.com [Bert, Puppy, Socks, Jeff, Ernie, Cyoot]
要让字典对电子邮件点赞:
print(df1.set_index('user_email')['likes'].to_dict())
{'matt@google.com': ['Bert', 'Ernie', 'Jeff', 'Bob', 'Puppy', 'Socks', 'Cyoot'],\
'gabe@google.com': ['Bert', 'Puppy', 'Socks', 'Jeff', 'Ernie', 'Cyoot']}
关于python - 重命名列表数据框中元素的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55433986/