计算pandas数据框中的所有类别并添加它们的值

时间:2016-01-14 02:21:10

标签: python pandas dataframe

我有一个数据框,看起来像这样:

           Dog_breed       Dog_name             Points 
      ============================================================
Monday        Pug            George               12
Tuesday       Poodle         Fido                -15
Wednesday     Pug            Buddy                 8
Thursday      Dachshund      Lyla                -10
Friday        Poodle         Remi                  9
Saturday      Pug            Kermit               -5
Sunday        Beagle         Sara                  3

对于每一种狗(即类别),我需要得到点的总和 - 对于某些行,它是正的,对某些人来说,它是负的 - 以及该品种的狗的数量。

目标是将每个品种的所有积分相加,计算每个品种在原始数据集中出现的次数,最后得到一个如下所示的数据框:

             Quantity     Overall_point_change
          ============================================
Pug             3                  15
Poodle          2                  -6
Dachshund       1                 -10
Beagle          1                   3

pandas可以这样做,还是需要循环?真的很难绕过这个问题 - 任何人都可以推荐一种方法来设置它吗?

2 个答案:

答案 0 :(得分:4)

你正在寻找大熊猫' groupby

df.groupby('Dog_breed').agg(['count', 'sum'])

阅读以下内容以获得更加清晰的理解:http://pandas.pydata.org/pandas-docs/stable/groupby.html

答案 1 :(得分:2)

DF.groupby('Dog_breed').agg({'Points': sum, 'Dog_name' : 'count'})

可能会有更好的结果?只是因为它指定了应用于每列的聚合函数。