python - Pandas 'count(distinct)' 等效

我使用 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 中做到这一点?

最佳答案

我相信这就是你想要的:

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

关于python - Pandas 'count(distinct)' 等效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15411158/

相关文章:

python - 解析命令行参数的最佳方法是什么?

python - 连接两个一维 NumPy 数组

linux - "POSIX"是什么意思?

python - 如何正确确定当前脚本目录?

python - 创建单独变量字典的更简单方法?

python - Python 中 % 的结果是什么?

python - 如何判断 tensorflow 是否从 python shell 内部使用 gpu

linux - 如何在 Linux/Unix 上永久设置 $PATH

linux - 如何使用 sudo 将输出重定向到我无权写入的位置?

linux - 如何在终端中获取当前日期和时间并在终端中为其设置自定义命令?