我遇到过这样一种情况:多个客户in可能属于同一个帐户,并且所有记录都归入以下两个组之一:
CUSTOMER_ACCOUNT_ID CUSTOMER_ID GROUP
123 555 A
123 556 A
124 557 B
124 558 B
125 559 A我想要做的是获得属于每个组的唯一CUSTOMER_ACCOUNT_IDs的计数。也就是说,我不关心一个账号属于多少个customer_ids,我只想看看每个组有多少个账号。我正在寻找这个输出
GROUP COUNT
A 2
B 1即每个组的唯一帐号数量。一种想法是,我想要折叠或删除CUSTOMER_ID维度,所以剩下的就是
CUSTOMER_ACCOUNT_ID GROUP
123 A
124 B
125 A然后对GROUP进行值计数,但我不确定如何处理。我确实找到了一种很难看的方式来做这件事,但我对熊猫来说还不熟悉R,所以我猜还有一种更直接的方式,我还不知道……
发布于 2016-08-27 01:55:08
您可以在分组后使用nunique()方法:
df.groupby('GROUP')['CUSTOMER_ACCOUNT_ID'].nunique().reset_index()
# GROUP CUSTOMER_ACCOUNT_ID
# 0 A 2
# 1 B 1发布于 2016-08-27 02:13:30
这就是你想要实现的吗?
In [103]: df.drop_duplicates(['CUSTOMER_ACCOUNT_ID', 'GROUP']).drop('CUSTOMER_ID', 1)
Out[103]:
CUSTOMER_ACCOUNT_ID GROUP
0 123 A
2 124 B
4 125 Ahttps://stackoverflow.com/questions/39172047
复制相似问题