熊猫:由其他人创建新的列组

时间:2021-07-15 16:20:25

标签: python pandas

我想创建一个新列,该列将计算一个比率 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

1 个答案:

答案 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 你会得到你想要的输出