我使用pandas作为数据库替代品,因为我有多个数据库(oracle,mssql等),并且无法对SQL等效命令进行一系列命令。

我在DataFrame中加载了带有一些列的表:

YEARMONTH, CLIENTCODE, SIZE, .... etc etc


在SQL中,每年计算不同客户端的数量将是:

SELECT count(distinct CLIENTCODE) FROM table GROUP BY YEARMONTH;


结果将是

201301    5000
201302    13245


如何在熊猫中做到这一点?

最佳答案

我相信这就是您想要的:

table.groupby('YEARMONTH').CLIENTCODE.nunique()


例:

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

09-27 22:27