首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >逐行计算求和后求和的百分比

逐行计算求和后求和的百分比
EN

Stack Overflow用户
提问于 2020-11-11 18:20:33
回答 2查看 24关注 0票数 1

我有一个数据库,看起来像这样:

代码语言:javascript
运行
AI代码解释
复制
STAFF  Position_Group FTE
BOB     APP           1.0
Mike    APP           0.5
Ken     APP           0.8
Liz     APP           0.7
Sally   APP           0.6

总数= 3.6

我想对FTE列求和,然后将每个员工除以总数,得到一个新的数据表,如下所示:

代码语言:javascript
运行
AI代码解释
复制
STAFF  Position_Group  FTE  %_Total_FTE
BOB     APP            1.0  .27
Mike    APP            0.5  .14
Ken     APP            0.8  .22
Liz     APP            0.7  .19
Sally   APP            0.6  .16

我知道如何通过这样做来计算FTE列的总和,但我不确定如何应用它来计算%列。

代码语言:javascript
运行
AI代码解释
复制
Master_PG_ROC_CFTE = Master_PG_ROC_v1.groupby(['Position_Group']).agg({'FTE': ['sum']})
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-11 18:24:24

您可以使用groupby().transform()在各行之间传播总和:

代码语言:javascript
运行
AI代码解释
复制
df['%Total_FTE'] = df['FTE'] / df.groupby('Position_Group')['FTE'].transform('sum')

输出:

代码语言:javascript
运行
AI代码解释
复制
   STAFF Position_Group  FTE  %Total_FTE
0    BOB            APP  1.0    0.277778
1   Mike            APP  0.5    0.138889
2    Ken            APP  0.8    0.222222
3    Liz            APP  0.7    0.194444
4  Sally            APP  0.6    0.166667
票数 1
EN

Stack Overflow用户

发布于 2020-11-11 18:29:30

修复你的代码

代码语言:javascript
运行
AI代码解释
复制
Master_PG_ROC_CFTE = Master_PG_ROC_v1.groupby(['Position_Group'])['FTE'].sum()

Master_PG_ROC_v1['%Total_FTE'] = Master_PG_ROC_v1['FTE'] / Master_PG_ROC_CFTE.reindex(Master_PG_ROC_v1['Position_Group']).values
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64791988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文