我有一个数据框如下
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并计算概率。 我如何在熊猫中这样做。
答案 0 :(得分:4)
df.thumb_up
是否等于1 groupby
df.id1
bool
是int
的子集,我们会在其上调用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