首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pandas 'count(distinct)‘等同

Pandas 'count(distinct)‘等同
EN

Stack Overflow用户
提问于 2013-03-14 21:50:03
回答 10查看 543.4K关注 0票数 350

我使用Pandas作为数据库的替代品,因为我有多个数据库(OracleSQL Server等),并且我不能为SQL等效项创建一系列命令。

我在DataFrame中加载了一个表,其中包含一些列:

代码语言:javascript
复制
YEARMONTH, CLIENTCODE, SIZE, etc., etc.

在SQL中,要计算每年不同客户端的数量,应为:

代码语言:javascript
复制
SELECT count(distinct CLIENTCODE) FROM table GROUP BY YEARMONTH;

结果将会是

代码语言:javascript
复制
201301    5000
201302    13245

我如何在Pandas中做到这一点呢?

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2013-03-14 22:09:06

我相信这就是你想要的:

代码语言:javascript
复制
table.groupby('YEARMONTH').CLIENTCODE.nunique()

示例:

代码语言:javascript
复制
In [2]: table
Out[2]: 
   CLIENTCODE  YEARMONTH
0           1     201301
1           1     201301
2           2     201301
3           1     201302
4           2     201302
5           2     201302
6           3     201302

In [3]: table.groupby('YEARMONTH').CLIENTCODE.nunique()
Out[3]: 
YEARMONTH
201301       2
201302       3
票数 525
EN

Stack Overflow用户

发布于 2017-07-02 19:16:54

这是另一个方法,它要简单得多。假设您的数据框名为daat,列名为YEARMONTH

代码语言:javascript
复制
daat.YEARMONTH.value_counts()
票数 120
EN

Stack Overflow用户

发布于 2014-05-05 10:59:28

有趣的是,len(unique())通常比nunique()快几倍(3倍-15倍)。

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

https://stackoverflow.com/questions/15411158

复制
相关文章

相似问题

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