我使用Pandas作为数据库的替代品,因为我有多个数据库(Oracle、SQL Server等),并且我不能为SQL等效项创建一系列命令。
我在DataFrame中加载了一个表,其中包含一些列:
YEARMONTH, CLIENTCODE, SIZE, etc., etc.在SQL中,要计算每年不同客户端的数量,应为:
SELECT count(distinct CLIENTCODE) FROM table GROUP BY YEARMONTH;结果将会是
201301 5000
201302 13245我如何在Pandas中做到这一点呢?
发布于 2013-03-14 22:09:06
我相信这就是你想要的:
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发布于 2017-07-02 19:16:54
这是另一个方法,它要简单得多。假设您的数据框名为daat,列名为YEARMONTH
daat.YEARMONTH.value_counts()发布于 2014-05-05 10:59:28
有趣的是,len(unique())通常比nunique()快几倍(3倍-15倍)。
https://stackoverflow.com/questions/15411158
复制相似问题