如何分组并计算熊猫的概率

时间:2017-03-25 09:53:44

标签: python pandas

我有一个数据框如下

id1, id2, thumb_up
 1,  1,   1
 1,  2,   -1
 1,  3,   1
 2, 1,   1
 2,  3,  -1
and so on

我想创建以下数据框

id1, thumb_up_prob
 1, 0.66 ( 2 positive feedback and 1 negative = 2/3)
 2, 0.5 (1 positive and 1 negative feedback = 1/2)

等等.. 所以基本上我想组合id1并计算概率。 我如何在熊猫中这样做。

2 个答案:

答案 0 :(得分:4)

  • 检查df.thumb_up是否等于1
  • groupby df.id1
  • 由于boolint的子集,我们会在其上调用mean
df.thumb_up.eq(1).groupby(df.id1).mean()

答案 1 :(得分:1)

使用apply函数和lambda

# df
df = pd.DataFrame({'id1':[1,1,1,2,2], 'id2':[1,1,3,1,3], 'thumb_up':
[1,-1,1,1,-1]})

# probability
df.groupby('id1').apply(lambda x: x[x>0].count()/len(x)) 

输出:

 id1    id2 thumb_up
 id1            
 1  1.0 1.0 0.666667
 2  1.0 1.0 0.500000