为了账号安全,请及时绑定邮箱和手机立即绑定

获取熊猫数据框中总数的百分比

获取熊猫数据框中总数的百分比

繁花如伊 2021-06-18 09:12:41
我有一个按以下方式配置的数据框:date_string | type | amount 2015-01-01 |  a   | 500 2015-01-01 |  b   | 300 2015-01-01 |  c   | 200 2015-01-02 |  a   | 400 2015-01-02 |  b   | 600 2015-01-02 |  c   | 100我希望添加一个按日期细分的百分比总数的新列,并得到如下内容:date_string | type | amount | percent 2015-01-01 |  a   | 500    | 0.5 2015-01-01 |  b   | 300    | 0.3 2015-01-01 |  c   | 200    | 0.2 2015-01-02 |  a   | 300    | 0.3 2015-01-02 |  b   | 600    | 0.6 2015-01-02 |  c   | 100    | 0.1
查看完整描述

2 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

使用GroupBy.transformwith sum,除以原始列除以Series.div


df['percent'] = df['amount'].div(df.groupby('date_string')['amount'].transform('sum'))

print (df)

  date_string type  amount   percent

0  2015-01-01    a     500  0.500000

1  2015-01-01    b     300  0.300000

2  2015-01-01    c     200  0.200000

3  2015-01-02    a     400  0.363636

4  2015-01-02    b     600  0.545455

5  2015-01-02    c     100  0.090909


查看完整回答
反对 回复 2021-06-22
?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

这将工作


import numpy as np

df.groupby(['amount', 'date_string']).sum().transform(lambda x: x/np.sum(x))


查看完整回答
反对 回复 2021-06-22
  • 2 回答
  • 0 关注
  • 111 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信