我的情况是多个客户ID可以属于同一个帐户,所有记录都分为两组:
CUSTOMER_ACCOUNT_ID CUSTOMER_ID GROUP
123 555 A
123 556 A
124 557 B
124 558 B
125 559 A
我想要做的是获取属于每个组的唯一CUSTOMER_ACCOUNT_ID的计数。也就是说,我不在乎有多少customer_ids属于某个帐户,我只想查看每个帐户中有多少个帐户。我正在寻找这个输出
GROUP COUNT
A 2
B 1
即,按组分组的唯一帐户数。考虑它的一种方法是我想要折叠或删除CUSTOMER_ID维度,所以我留下了
CUSTOMER_ACCOUNT_ID GROUP
123 A
124 B
125 A
然后执行GROUP的值计数,但我不确定如何处理此问题。我确实找到了一种丑陋的方式来做这件事,但我对使用R的熊猫不熟悉,所以我猜测那是一种更直接的方式,我还不知道...... < / p>
答案 0 :(得分:3)
您可以在分组后使用nunique()
方法:
df.groupby('GROUP')['CUSTOMER_ACCOUNT_ID'].nunique().reset_index()
# GROUP CUSTOMER_ACCOUNT_ID
# 0 A 2
# 1 B 1
答案 1 :(得分:2)
这是你想要实现的吗?
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 A