如何按publid、clusterid、issuedate、operdate分组统计唯一inn值数量
分组统计去重inn数量的实现方法
SQL实现
使用窗口函数即可在保留所有原始行的前提下,统计指定分组内的去重inn值数量,示例代码如下(将your_table替换为你的实际表名):
SELECT inn, publid, clusterid, issuedate, operdate, COUNT(DISTINCT inn) OVER ( PARTITION BY publid, clusterid, issuedate, operdate ) AS `count` FROM your_table;
Python Pandas实现
如果是用Pandas处理数据框,可通过分组+transform实现:
import pandas as pd # df为你的原始数据框 df['count'] = df.groupby(['publid', 'clusterid', 'issuedate', 'operdate'])['inn'].transform('nunique')
以上两种实现的输出结果和你给出的预期结果完全匹配:当四个分组字段取值相同时,所有同组行的count值都等于该组内唯一inn的数量。
内容的提问来源于stack exchange,提问作者lisam
相关产品推荐
相关产品推荐

