我有一个看起来像这样的数据框:
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 可以做到这一点,还是需要一个循环?真的很难解决这个问题 - 谁能推荐一种设置方法?
请您参考如下方法:
您正在寻找 pandas' groupby .
df.groupby('Dog_breed').agg(['count', 'sum'])
阅读以下内容以获得更深入的理解:http://pandas.pydata.org/pandas-docs/stable/groupby.html
