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

Python中pandas DataFrame全表百分比计算的最简代码实现方案

解决方案

最简实现(仅1行代码)

直接通过列切片选中1-4年的列,按行和Freq列做除法运算即可:

df.loc[:, '1. Year':'4. Year'] = df.loc[:, '1. Year':'4. Year'].div(df['Freq'], axis=0) * 100

说明:axis=0 指定按行对齐计算,保证每行的年份列数值都除以本行对应的Freq值,运算过程中原有的NaN值会自动保留。

通用适配实现(列名不连续场景可用)

如果1-4年列并非连续排列,可以用正则匹配所有符合「数字+. Year」格式的年份列,避免手动写列名:

year_cols = df.filter(regex=r'^\d+\. Year').columns
df[year_cols] = df[year_cols].div(df['Freq'], axis=0) * 100

可选:控制精度

如果需要将百分比保留2位小数,可追加round()方法:

df.loc[:, '1. Year':'4. Year'] = df.loc[:, '1. Year':'4. Year'].div(df['Freq'], axis=0).mul(100).round(2)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 22:30:05