繁体   English   中英

Pandas Python-按分组值获取值计数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM