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

如何在pandas中迭代多列并结合另一DataFrame的Mean、Dev值进行计算

简化DataFrame逐列标准化运算的实现方法

你可以利用pandas的广播特性省去逐行、逐列手动编写代码的麻烦,核心逻辑是让df的列和df1的行按顺序一一匹配参数。

最优方案:全量向量化运算(无循环,效率最高)

直接通过数组广播完成所有列的批量计算,无论df有多少列都可以自动适配,只要保证df1的行数和df的列数一一对应即可:

# 按列匹配df1的Mean和Dev完成减均值除以Dev的运算
df_normalized = (df - df1['Mean'].values) / df1['Dev'].values

逐列处理的循环方案(适用于需要单独处理每列结果的场景)

如果需要对每列的计算结果做单独输出或后续处理,可以遍历df的列索引匹配df1的参数:

for col_idx, col_name in enumerate(df.columns):
    # 取当前列对应的均值和偏差值
    current_mean = df1.loc[col_idx, 'Mean']
    current_dev = df1.loc[col_idx, 'Dev']
    # 整列运算,无需逐行遍历
    res = (df[col_name] - current_mean) / current_dev
    # 此处可自定义结果处理逻辑,比如打印、保存
    print(f"列{col_name}计算结果:")
    print(res.reset_index(drop=True))

说明

你原来代码里的逐行遍历for i in range(0, len(df))是冗余写法,pandas原生支持Series(单列数据)的批量算术运算,执行效率远高于逐行循环,数据量越大优势越明显。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 00:45:03