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

如何将含NA的DataFrame两列合并为新列并追加至原数据集?

高效合并两列生成新列的Pandas方法

嘿,你这个需求完全不用写循环来实现,Pandas提供了更简洁高效的矢量化操作,处理几千行数据速度快得多,下面给你几种实用的方法:

方法1:用fillna快速替换NA(最简洁)

根据你的需求,corprsd2为1时新列取1,为NA时取0,直接用fillna把NA替换成0,再转成整数类型就行:

import pandas as pd

# 假设你的DataFrame叫df
df['corcombined'] = df['corprsd2'].fillna(0).astype(int)

方法2:用np.where实现条件判断(更灵活)

如果以后你的规则有变化,比如需要结合corprsd1的值调整逻辑,用numpy的where函数可以更清晰地定义判断规则:

import pandas as pd
import numpy as np

df['corcombined'] = np.where(df['corprsd2'].notna(), df['corprsd2'], 0).astype(int)

这段代码的逻辑是:如果corprsd2不是缺失值(也就是等于1),就取corprsd2的值;否则取0,最后转成整数类型。

为什么不推荐循环?

Python的循环在处理Pandas DataFrame时效率很低,尤其是数据量达到几千行甚至更多的时候,矢量化操作是Pandas的设计初衷,能利用底层的C语言加速,比循环快几十倍都很正常,而且代码更简洁易读。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:29:29