我想创建一个新列,该列将计算一个比率 groupby 日期和计数,如下所示在我的新列 new 的结果中。
date count place moy new
2021-07-04 396 NY 30. 30/(30+10+20+40)
2021-07-04 396 OX 10. 10/(30+10+20+40)
2021-07-04 396 CA 20 20/(30+10+20+40)
2021-07-04 396 LA 40 40/(30+10+20+40)
2021-07-05 592 NY 30. 30/(30+50+10+30)
2021-07-05 592 OX 50. 50/120
2021-07-05 592 NY 10. 10/120
2021-07-05 592 OX 30. 30/12O
答案 0 :(得分:1)
通过 groupby()
和 transform()
尝试:
df['new']=df['moy']/df.groupby(['date','count'])['moy'].transform('sum')
#OR
df['new']=df['moy'].div(df.groupby(['date','count'])['moy'].transform('sum'))
如果需要,您可以使用 round()
方法对值进行四舍五入:
df['new']=df['new'].round(2)
现在如果你打印 df
你会得到你想要的输出