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

Pandas中如何基于第三列的值从两列选值生成新列

Pandas按条件选择列生成新列的实现方案

针对C列小于0.5取B、否则取A生成新列D的需求,有以下几种常用实现方式:

  • 方法1:使用numpy.where(推荐优先使用,效率高、写法简洁)
    适合二分类条件判断场景,无需复杂逻辑,运行效率远高于行遍历方法。
import pandas as pd
import numpy as np

# 构造示例DataFrame
df = pd.DataFrame({
    "A": [1, 3, 5, 7, 9],
    "B": [2, 4, 6, 8, 10],
    "C": [0.2, 0.7, 0.4, 0.9, 0.1]
})

# 生成新列D
df["D"] = np.where(df["C"] < 0.5, df["B"], df["A"])
  • 方法2:使用Pandas原生loc索引(无需额外依赖numpy)
    逻辑直观易读,适合不想引入第三方依赖的场景。
# 先默认给D列赋值为A列的值
df["D"] = df["A"]
# 替换满足C<0.5的行的D列为B列值
df.loc[df["C"] < 0.5, "D"] = df["B"]
  • 方法3:使用apply行遍历(适合复杂判断逻辑,小数据量可用)
    灵活度最高,但逐行遍历开销大,大数据量下不推荐使用。
df["D"] = df.apply(lambda row: row["B"] if row["C"] < 0.5 else row["A"], axis=1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 21:36:01