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

如何用Python将DataFrame所有观测值除以DC列对应单元格值?

pandas高效实现DataFrame逐行除以指定列的方法

直接用pandas的向量化除法操作即可,完全不需要iterrows这种低效的循环方法,代码如下:

1. 构造示例数据

import pandas as pd

# 模拟你的原始DataFrame
df = pd.DataFrame({
    'AB': [40, 10],
    'BC': [50, 20],
    'DA': [4, 10],
    'DC': [10, 5],
    'FF': [60, 20]
})

2. 执行逐行除法操作

# 整个DataFrame除以DC列的对应行值,axis=0表示按行对齐广播
new_df = df.div(df['DC'], axis=0)

执行后new_df的正确结果如下:

ABBCDADCFF
450.416
24214

(注:你提供的示例结果第二行存在笔误,按照“所有观测值除以DC列对应单元格值”的逻辑,第二行各值应为10/5=2、20/5=4、10/5=2、5/5=1、20/5=4)

为什么这个方法最优?

  • 效率极高:向量化操作基于numpy底层实现,避免了Python层面的循环,对于你这种300+行、4000+列的大DataFrame,速度比iterrows快几个数量级。
  • 代码简洁:一行代码完成需求,可读性强,不容易出错。
  • 自动对齐:pandas会自动按行索引对齐,不需要手动处理行匹配问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 19:10:29