python - 重命名列表数据框中元素的最有效方法

标签 python arrays pandas dictionary

我有两个数据框,其中一个包含宠物 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/

相关文章:

python - gtk.ScrolledWindow 具有 gtk.TextView 显示固定的第一行

python - 在 python 中对 BED/Interval 文件中的每一行进行相同的更改

c++ - 为什么我的数组超出范围?

python - 根据另一列计算值的出现次数

python - 错误! C :\file\example. db 不是 UTF-8 编码的 ipython 笔记本

python - 正则表达式替换匹配项

javascript - d3.map() 函数未返回预期结果

c++ - 我如何从包含很多行的文件 .dat 中读取并在 EOF 之前只收集数组中的几个值?

python - 在 Pandas 中运行总和(无循环)

python - 匹配到逗号或行尾