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

通过示例理解Pandas向量化操作:元素判断实现及与循环的差异

Pandas DataFrame向量化操作实现及与循环的差异

一、实现逐元素判断的方法

1. 计算目标列的均值

首先取DataFrame的第一列(默认列名为0)计算平均值:

mean_val = df[0].mean()

2. 生成flag列

利用Pandas的向量化比较特性,直接对整列进行判断,再将布尔结果转为整数(True对应1,False对应0):

df["flag"] = (df[0] >= mean_val).astype(int)

执行后即可得到预期的flag列:[0,0,0,0,0,1,1,1,1,1]

也可以用numpy.where实现相同逻辑:

import numpy as np
df["flag"] = np.where(df[0] < mean_val, 0, 1)

二、向量化操作与循环的差异

  • 性能差距极大:向量化操作由底层C语言实现批量运算,跳过Python层面的逐行遍历,处理大数据量时速度远超循环。比如用循环实现的写法(不推荐):
    df["flag"] = 0
    for idx in df.index:
        if df.loc[idx, 0] >= mean_val:
            df.loc[idx, "flag"] = 1
    
    当DataFrame行数达到十万级时,循环会卡顿明显,而向量化操作几乎瞬间完成。
  • 代码更简洁可读:向量化操作一行代码完成逻辑,无需嵌套循环结构,意图一目了然。
  • 内存效率更高:向量化操作依托Pandas/Numpy的内存优化机制,避免循环中频繁的内存读写,降低内存占用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 09:18:35