首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“熊猫与字典”:如何才能为每个键获得所有独特的价值?

“熊猫与字典”:如何才能为每个键获得所有独特的价值?
EN

Stack Overflow用户
提问于 2021-10-06 17:36:13
回答 3查看 500关注 0票数 1

我想要构建一个字典,这样键值对中的值就是该键的每个唯一值。

考虑一下这个例子:

代码语言:javascript
复制
df = pd.DataFrame({'id': [1, 2, 3, 1, 2, 3], 'vals': ['a1', 'a2', 'a3', 'a2', 'a2a', 'a3a']})

# only yields last entry
dict(zip(df['id'], df['vals']))
# results
{1: 'a2', 2: 'a2a', 3: 'a3a'}

# expected value
{1: ['a1', 'a2'], 2: ['a2', 'a2a'], 3: ['a3', 'a3a']}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-10-06 17:45:04

你可以理解一下,如下所示:

代码语言:javascript
复制
{k: group['vals'].tolist() for k, group in df.groupby('id')}

哪种输出

代码语言:javascript
复制
{1: ['a1', 'a2'], 2: ['a2', 'a2a'], 3: ['a3', 'a3a']}
票数 2
EN

Stack Overflow用户

发布于 2021-10-06 17:42:15

使用:

代码语言:javascript
复制
result = df.groupby("id")["vals"].agg(list).to_dict()
print(result)

输出

代码语言:javascript
复制
{1: ['a1', 'a2'], 2: ['a2', 'a2a'], 3: ['a3', 'a3a']}
票数 3
EN

Stack Overflow用户

发布于 2021-10-06 17:51:41

代码语言:javascript
复制
print(df.groupby('id')['vals'].apply(lambda x: x.tolist()).to_dict())
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69470277

复制
相关文章

相似问题

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