首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Python中,根据组结果创建字典,并为唯一元素创建列表。

在Python中,根据组结果创建字典,并为唯一元素创建列表。
EN

Stack Overflow用户
提问于 2022-02-10 14:43:27
回答 2查看 51关注 0票数 0

我有这个数据集:

代码语言:javascript
运行
复制
pd.DataFrame({'pid' : ['12A', '12A', '12A', '10B', '10B', '10B', '10B'],
                'wips' : ['Aa', 'Aa', 'Aa', 'Dd', 'Dd', 'Dd', 'Dd'], 
                'be':['charlie','charlie','charlie','hanami','hanami','hanami','hanami'],
                'rownum':[1,2,3,1,2,3,4]})
代码语言:javascript
运行
复制
   pid wips       be  rownum
0  12A   Aa  charlie       1
1  12A   Aa  charlie       2
2  12A   Aa  charlie       3
3  10B   Dd   hanami       1
4  10B   Dd   hanami       2
5  10B   Dd   hanami       3
6  10B   Dd   hanami       4

我需要把这个df转换成字典,就像这样-

代码语言:javascript
运行
复制
[{'pid':'12A','wips':'Aa','be':'charlie','rownum':[1,2,3]},{'pid':'10B','wips':'Dd','be':'hanami','rownum':[1,2,3,4]}]

请帮我写一段代码来得到这个结果。谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-10 14:45:42

分组,应用列表,变成dict。

代码语言:javascript
运行
复制
result = df.groupby(['pid', 'wips', 'be'])['rownum'].apply(list).reset_index().to_dict(orient='records')
票数 0
EN

Stack Overflow用户

发布于 2022-02-10 14:45:42

我们可以先用groupby使用list,然后再用to_dict

代码语言:javascript
运行
复制
out = df.groupby(['pid','wips','be'])['rownum'].agg(list).reset_index().to_dict('records')
Out[16]: 
[{'pid': '10B', 'wips': 'Dd', 'be': 'hanami', 'rownum': [1, 2, 3, 4]},
 {'pid': '12A', 'wips': 'Aa', 'be': 'charlie', 'rownum': [1, 2, 3]}]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71067140

复制
相关文章

相似问题

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