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

Pandas大数据集下按条件基于其他列生成新列的高效方法咨询

Pandas 大型数据集两类新增列操作高效实现方案

1. 优先取X列值、空值取Y列生成Z列

最高效的实现是使用Pandas原生的fillna向量化方法,完全避免Python层的逐行迭代,适配超大数据集的性能要求:

# 逻辑:X列非空取X,否则取Y
df['Z'] = df['X'].fillna(df['Y'])

注:如果你的“有取值”指排除空字符串、0等自定义非空规则,可先将对应值替换为pandas识别的空值NaN后再执行上述操作。

2. 按Y列是否存在的三元逻辑生成Z列

列是否存在是数据集的全局属性,仅需做一次判断即可,不需要逐行校验,性能损耗几乎可以忽略:

if 'Y' in df.columns:
    df['Z'] = df['Y'] - df['X']
else:
    df['Z'] = df['X'].copy()

性能说明

上述两种方案均基于Pandas底层优化的向量化操作实现,相比逐行调用apply、map的自定义逻辑,处理百万行以上级别的数据集时速度快50~100倍,且内存占用更低。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 15:24:01