You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中获取DataFrame每行对应计数并计算个体百分比贡献

嘿,这个需求用Pandas分分钟就能搞定,根本不用转列表折腾~我给你一步步说怎么实现:

第一步:确认你的DataFrame结构

先假设你已经有了导入好的DataFrame(如果还没创建,用下面的代码初始化):

import pandas as pd

# 初始化你的数据
df = pd.DataFrame({
    'Name': ['User_1', 'User_2', 'User_3', 'User_4', 'User_5'],
    'count': [3, 5, 2, 2, 8]
})

第二步:计算总工作日天数

先算出所有用户的工作日总和,这是计算百分比的基础:

total_days = df['count'].sum()
# 这里total_days的结果是20,和你例子里的一致

第三步:新增百分比贡献列

直接在原DataFrame里新增一列,计算每个用户的占比,还可以直接格式化成带%的字符串(方便在Dash里展示):

# 方法1:先计算数值再格式化
df['percentage_contribution'] = (df['count'] / total_days) * 100
# 保留两位小数并加上%符号
df['percentage_contribution'] = df['percentage_contribution'].round(2).astype(str) + '%'

# 方法2:用lambda一步到位更简洁
df['percentage_contribution'] = df['count'].apply(lambda x: f"{(x / total_days) * 100:.2f}%")

最终结果

处理后的DataFrame会变成这样:

Namecountpercentage_contribution
User_1315.00%
User_2525.00%
User_3210.00%
User_4210.00%
User_5840.00%

这样处理完的DataFrame直接就能在Dash里用啦——不管是用dash_table.DataTable展示表格,还是提取数据做柱状图/饼图可视化,都完全没问题。如果不想修改原DataFrame,只要先df.copy()创建一个副本再操作就行~

内容的提问来源于stack exchange,提问作者user15365664

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 08:47:36