[英]Pandas Python - get value counts by grouped values
我遇到的情况是,多个客户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_id,我只想查看每个组中有多少个帐户。 我正在寻找这个输出
GROUP COUNT
A 2
B 1
也就是说,按组的唯一帐户数。 一种思考的方式是我要折叠或删除CUSTOMER_ID维度,因此
CUSTOMER_ACCOUNT_ID GROUP
123 A
124 B
125 A
然后计算GROUP的值,但是我不确定该如何处理。 我确实找到了一个丑陋的方法,但是我是使用R刚接触熊猫的人,所以我猜测还有一种我不知道的更直接的方法...
您可以在分组后使用nunique()
方法:
df.groupby('GROUP')['CUSTOMER_ACCOUNT_ID'].nunique().reset_index()
# GROUP CUSTOMER_ACCOUNT_ID
# 0 A 2
# 1 B 1
这是您要达到的目标吗?
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.