我使用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