python - Pandas 'count(distinct)' 等值

标签 python pandas count group-by distinct

我使用 Pandas 作为数据库替代品,因为我有多个数据库( OracleSQL 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/56798758/

相关文章:

jquery - 文本区域中的字符数

python - 无法将简单的文本文件转换为 pandas 数据框

sql - 合并两个表,旧列的新列之和

python - 不近似求解不正确积分

python - 从另一个服务(微服务架构)验证 Flask 单元测试客户端?

python - 在python中计算每年前10名的平均值(groupby,nlargest)

python - Pandas :Groupby 并在组内使用条件进行迭代?

mysql - 从多个表中选择计数并分组

python - 替换 Pandas 数据框中的字符串

Python - subprocess.Popen - ssh -t user@host 'service --status-all'