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 中怎么做?

时间: 原作者:

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()



原作者:
...