如何用Python Pandas计算每行数据占总数的百分比?
如何给Pandas数据框新增百分比列?
我来帮你搞定这个需求!你需要给现有数据框新增一列,展示每行Num值占总数的百分比,并且格式化为带一位小数的百分形式。下面是具体的实现步骤:
首先,我们先构造你提供的样本数据(如果已经有现成的数据框,可以跳过这一步):
import pandas as pd # 创建示例数据框 df = pd.DataFrame({ 'vehicle_make': ['Acura', 'Audi', 'BMW', 'Buick'], 'Num': [2, 3, 7, 6] })
接下来,计算Num列的总和,然后基于这个总和生成百分比列:
# 计算Num列的总数值 total_num = df['Num'].sum() # 新增percent列,计算占比并格式化为保留1位小数的百分比 df['percent'] = (df['Num'] / total_num).apply(lambda x: f"{x * 100:.1f}%")
运行这段代码后,你打印df就会得到想要的结果:
vehicle_make Num percent 0 Acura 2 11.1% 1 Audi 3 16.7% 2 BMW 7 38.9% 3 Buick 6 33.3%
如果你觉得lambda表达式不够直观,也可以用另一种方式实现——先计算百分比数值再格式化:
df['percent'] = round(df['Num'] / total_num * 100, 1).astype(str) + '%'
这两种方法都能达到你想要的效果,选你觉得顺手的就行~
内容的提问来源于stack exchange,提问作者hben
相关产品推荐
相关产品推荐

