python - python Pandas count(distinct) 等价

  显示原文与译文双语对照的内容
52 5

我使用 Pandas 作为数据库替换,因为有多个数据库( oracle,ms SQL等),无法将命令序列作为等效的SQL 。

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

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

在SQL中,要计算每年不同客户端的数量,请执行以下操作:

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

结果是

201301 5000
201302 13245

我在 Pandas 中怎么做?

时间:原作者:0个回答

134 0

我相信这就是你想要

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
原作者:
126 5

下面是另一个方法,非常简单,假设你的dataframe名称是 daat,列名是 YEARMONTH

daat.YEARMONTH.value_counts()
原作者:
...