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

如何用Pandas新增列并按多条件为指定行赋值

为Pandas DataFrame按多条件新增并赋值列

问题场景

需要在数据集新增一列,根据多个条件为特定行插入值,此前找到的方案仅支持单个条件,无法满足需求。由于数据每日更新,不能通过行号定位,必须用条件匹配。

原始DataFrame

DateGroupStateCount
2021-01-01001IL0
2021-01-01002IL5
2021-01-02001CA3
2021-01-02002CA9
2021-01-03001AZ2
2021-01-03002AZ8
2021-01-04001WY4
2021-01-04002WY7

需求

新增Sub列,仅在Date == '2021-01-03'、Group == '002'且State == 'AZ'的行赋值3,其余行赋值0。

解决方案

先初始化Sub列默认值为0,再通过loc结合多条件筛选更新目标行:

# 初始化Sub列所有值为0
df['Sub'] = 0
# 对符合多条件的行赋值3
df.loc[(df['Date'] == '2021-01-03') & (df['Group'] == '002') & (df['State'] == 'AZ'), 'Sub'] = 3

关键说明

  • 用&连接多个条件,每个条件需用括号包裹,避免运算优先级错误
  • 先初始化列可确保所有行都有默认值0,避免未匹配行出现NaN
  • 基于条件匹配的方式不受数据行号变化影响,适配每日更新的数据集

最终输出DataFrame

DateGroupStateCountSub
2021-01-01001IL00
2021-01-01002IL50
2021-01-02001CA30
2021-01-02002CA90
2021-01-03001AZ20
2021-01-03002AZ83
2021-01-04001WY40
2021-01-04002WY70

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 02:35:26