首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何按列中的唯一值子集pandas数据帧

如何按列中的唯一值子集pandas数据帧
EN

Stack Overflow用户
提问于 2019-07-03 15:49:22
回答 1查看 1.1K关注 0票数 1

我想找到一种更简单的方法来子集dataframe并将其创建为新的dataframe

代码语言:javascript
运行
复制
A011 = DF[DF['id']=="A011"]
A012 = DF[DF['id']=="A012"]
A013 = DF[DF['id']=="A013"]
A014 = DF[DF['id']=="A014"]

这是可行的,但效率很低。我实际上有162个唯一的值。

代码语言:javascript
运行
复制
DF = pd.DataFrame({'id': ["A011", "A012", "A012", "A012","A011", "A012", "A012", "A012"],\
'value': [1, 2, 3, 4, 1, 2, 3, 4]})
A011 = DF[DF['id']=="A011"]
A012 = DF[DF['id']=="A012"]
A013 = DF[DF['id']=="A013"]
A014 = DF[DF['id']=="A014"]

期望输出

代码语言:javascript
运行
复制
    id  value
0   A011    1
4   A011    1

    id  value
1   A012    2
5   A012    2
EN

回答 1

Stack Overflow用户

发布于 2019-07-03 16:22:04

代码语言:javascript
运行
复制
df = pd.DataFrame({'id': ["A011", "A012", "A012", 
"A012","A011", "A012", "A012", "A012"], 'value': [1, 2, 3, 4, 1, 2, 3, 4]})    
result = [x.reset_index(drop=True) for _, x in df.groupby(['id'])]

由于您希望基于唯一的id列创建数据帧,因此我们可以根据id列对数据帧进行分组,该列为每个组返回一个数据帧。在创建的数据帧上使用reset_index删除原始索引。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56865354

复制
相关文章

相似问题

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