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

Python pandas如何高效对DataFrame指定行范围数据做乘法运算

最短耗时实现方案

要实现行位置3到末尾的数据乘0.3且运算耗时最短,直接使用pandas原生iloc切片做原地向量化运算是最优选择,全程走底层C实现的向量化逻辑,无Python层循环开销、无额外数据副本拷贝,性能远高于逐行遍历、apply、链式索引等写法。

实现代码

import pandas as pd
# 构造示例DataFrame
dataframe = pd.DataFrame({'Energy Consumption': [20, 21, 19, 18, 25, 40, 18]})

# 耗时最短的操作:取位置3及之后的所有行、所有列,原地乘0.3
dataframe.iloc[3:, :] *= 0.3

性能说明

  • 该写法依托pandas底层NumPy数组的向量化运算能力,运算逻辑在C层面执行,没有Python级别的循环开销
  • 采用*=原地修改内存中的数据,不会生成新的DataFrame副本,省去了大内存块拷贝的耗时,数据量越大性能优势越明显
  • 请勿使用iterrows逐行遍历、apply逐元素处理、带条件判断的loc筛选这类写法,这类写法的耗时通常是上述最优写法的数倍到上百倍,数据量越大差距越显著

运算结果

执行代码后得到的DataFrame如下:

Energy Consumption
0                20.0
1                21.0
2                19.0
3                 5.4
4                 7.5
5                12.0
6                 5.4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.19 16:15:46