在 pandas groupby 操作中计算唯一元素并求和值

Count unique elements and sum up values in a pandas groupby operation

我有一个 table,其中包含以下数据:

day         concept    click    item_id 
2015-05-01    A          6     s4P~Hzs1w5R12Dpyn2IK
              B          6     s4P~Hzs1w5R12Dpyn2IK
              C          1     DOwfmfFvdEIZ1IdXqTiu
              D          1     wPaYuIh~t8y7rU3HP43N
              D          7     Ya_M~2N6eX0kem8IgdSp

而且我想获得 distint item_id 的计数和每天所有 item_id 的点击总和,例如:

day         concept       click    count_item_id    
2015-05-01    A          6        1
              B          6        1
              C          1        1
              D          8        2

我在 Python 和 Pandas 图书馆工作

使用 groupby 后接 agg:

df.groupby(['day', 'concept']).agg({'click' : 'sum', 'item_id' : 'count'})

                    item_id  click
day        concept                
2015-05-01 A              1      6
           B              1      6
           C              1      1
           D              2      8

请检查这是否是您想要的:

df[['day', 'concept']].groupby(['click', 'item_id']).agg(['sum', 'count'])