如何基于DataFrame单列计算所有列的百分比?
计算DataFrame所有列基于指定列的百分比
直接利用pandas的广播特性就能高效处理大型数据集,不用循环遍历每一列,代码简洁且性能拉满:
核心实现代码
import pandas as pd # 读取数据集(替换成你的文件路径) df = pd.read_csv("你的数据集路径") # 计算所有列相对于指定列(比如示例中的World列)的百分比,保留两位小数 percent_df = df.div(df["World"], axis=0) * 100 percent_df = percent_df.round(2) # 查看前几行结果 print(percent_df.head())
关键说明
df.div(df["World"], axis=0):指定axis=0后,每一行的所有列会自动除以该行的World列数值,pandas的广播机制会帮你完成行对齐计算,这比手动循环列高效太多,完全适配大型数据集。- 乘以100是转成百分比格式,
round(2)用来控制小数位数,按需调整即可。 - 如果不想计算作为分母的列(比如World)自身的百分比(结果固定为100),可以先排除该列再计算:
# 排除分母列后计算 percent_df = df.drop("World", axis=1).div(df["World"], axis=0) * 100
内容的提问来源于stack exchange,提问作者Gambler Tech
相关产品推荐
相关产品推荐

