Pandas数量(不同)相等

2024-03-28 14:22:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用pandas作为db替换,因为我有多个数据库(oracle、mssql等),并且我无法将命令序列转换为SQL等效命令。

我在数据框中加载了一个表,其中包含一些列:

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

在SQL中,要计算每年不同客户机的数量:

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

结果会是

201301    5000
201302    13245

我怎样才能在熊猫身上做到这一点?


Tags: 数据命令数据库pandasdbsqlsize数量
3条回答

这里有另一个方法,非常简单,假设您的数据帧名是daat,列名是YEARMONTH

daat.YEARMONTH.value_counts()

有趣的是,通常len(unique())nunique()快几倍(3x-15x)。

我相信这就是你想要的:

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

相关问题 更多 >