首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何计算pandas group by object列中的不同值?

如何计算pandas group by object列中的不同值?
EN

Stack Overflow用户
提问于 2013-07-29 22:10:21
回答 2查看 47.4K关注 0票数 23

我有一个pandas数据框,并按两列对其进行分组(例如col1col2)。对于col1col2的固定值(例如,对于一个组),我可以在col3中有几个不同的值。我想从第三列开始计算不同值的数量。

例如,如果我将以下内容作为输入:

代码语言:javascript
复制
1  1  1
1  1  1
1  1  2
1  2  3
1  2  3
1  2  3
2  1  1
2  1  2
2  1  3
2  2  3
2  2  3
2  2  3

我希望将此表(数据框)作为输出:

代码语言:javascript
复制
1  1  2
1  2  1
2  1  3
2  2  1
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-29 22:16:47

代码语言:javascript
复制
df.groupby(['col1','col2'])['col3'].nunique().reset_index()
票数 27
EN

Stack Overflow用户

发布于 2013-07-29 22:18:03

代码语言:javascript
复制
In [17]: df
Out[17]: 
    0  1  2
0   1  1  1
1   1  1  1
2   1  1  2
3   1  2  3
4   1  2  3
5   1  2  3
6   2  1  1
7   2  1  2
8   2  1  3
9   2  2  3
10  2  2  3
11  2  2  3

In [19]: df.groupby([0,1])[2].apply(lambda x: len(x.unique()))
Out[19]: 
0  1
1  1    2
   2    1
2  1    3
   2    1
dtype: int64
票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17926273

复制
相关文章

相似问题

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