如何在DataFrame中实现多列按同一列除法并乘以100?
实现DataFrame所有列除以指定列并乘以100
没问题,这在pandas里其实很容易实现!我给你两种实用的处理方式,你可以根据需求选择:
方式1:对所有列(含参考列)执行运算
如果需要让所有列都参与运算(包括作为除数的参考列),直接利用pandas的广播特性就能一行搞定:
import pandas as pd # 先模拟你的示例数据 data = { '列1': [0.21], '列2': [0.18], '列3': [0.146], '参考列': [0.26] } df = pd.DataFrame(data) # 核心运算:所有列 ÷ 参考列 × 100 result_df = (df / df['参考列']) * 100
运行后result_df的结果会符合计算逻辑:列1≈80.8(和你给出的示例一致),列2≈69.2(哦对了,你示例里写的83.6应该是笔误啦~),列3≈56.2。
方式2:仅处理非参考列,保留原参考列
如果想保留原参考列的数值不变,只对其他列做运算,可以先筛选出目标列:
# 筛选出除参考列外的所有列 target_cols = df.columns.drop('参考列') # 对目标列执行运算并替换原数据 df[target_cols] = (df[target_cols] / df['参考列']) * 100
这样处理后,原DataFrame里的参考列数值保持0.26不变,其他列都变成了除以参考列再乘100后的结果。
小提示
pandas的广播机制会自动把单列的数值扩展成和整个DataFrame匹配的形状,所以每一行的列值都会对应除以该行的参考列数值,完美匹配你的需求~
内容的提问来源于stack exchange,提问作者perherring
相关产品推荐
相关产品推荐

