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

Python 如何分组并计算熊猫的概率,python,pandas,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分

我有一个如下的数据帧

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分组,计算概率。 我如何在熊猫身上做到这一点。

  • 检查
    df.thumb\u up
    是否等于1
  • groupby
    df.id1
  • 由于
    bool
    int
    的子集,我们称之为
    mean


使用
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
 id1    id2 thumb_up
 id1            
 1  1.0 1.0 0.666667
 2  1.0 1.0 0.500000