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

如何在Pandas DataFrame中按指定条件创建新列?

解决方案

直接用矢量化操作就能搞定,比循环或者apply靠谱多了,给你两种实现方式:

方法一:用NumPy的np.select(多条件场景最清晰)

import pandas as pd
import numpy as np

# 假设你的DataFrame叫df
# 定义三个判断条件
conditions = [
    df['Finding Ageing in Days'] == 0,
    df['Finding Ageing in Days'] == 1,
    df['Finding Ageing in Days'] > 1
]
# 对应每个条件的输出结果
values = [None, '=1 day', '>1 day']

# 生成目标新列
df['Ageing'] = np.select(conditions, values)

方法二:用Pandas的loc赋值(不用额外导入库)

import pandas as pd

# 先给新列设默认值(覆盖大部分大于1的情况)
df['Ageing'] = '>1 day'
# 再逐个覆盖特殊条件的行
df.loc[df['Finding Ageing in Days'] == 1, 'Ageing'] = '=1 day'
df.loc[df['Finding Ageing in Days'] == 0, 'Ageing'] = None

为啥你之前用循环/apply没成功?

  • 循环遍历行本身就不是Pandas的正确用法,效率极低还容易踩索引赋值的坑
  • apply如果返回值类型不统一(比如混着None和字符串),可能导致列类型混乱,最终出现赋值失效的情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 08:57:14