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

Pandas如何基于两列满足指定条件新增列且保留原数据顺序

解决方法
  • 原有代码乱序的原因是你将正确、错误数据拆分为两个子表后再拼接,会强制把所有正确行前置、错误行后置,自然打乱原始顺序,同时还容易出现两个子表列不一致、字段丢失的问题。

直接在原DataFrame上新增accuracy列即可,完全保留原有行顺序和所有列,代码如下:

# 匹配规则可根据你的实际业务调整,以下规则是根据你给出的样例数据匹配逻辑编写:red对应R、blue对应B、green对应G
# 如果你原有业务确实是green对应V、blue对应A、red对应R,改回你原来的c1/c2/c3条件即可
c1 = df['color'].eq('green') & df['value'].eq('G')
c2 = df['color'].eq('blue') & df['value'].eq('B')
c3 = df['color'].eq('red') & df['value'].eq('R')
m = c1 | c2 | c3

# 方法1:无需导入额外依赖,直接赋值即可
df['accuracy'] = 'I'
df.loc[m, 'accuracy'] = 'C'

# 方法2:用numpy.where实现一行赋值(需要提前执行import numpy as np)
# df['accuracy'] = np.where(m, 'C', 'I')

运行后直接输出df就能得到你需要的结果,所有原有列、行顺序都不会发生变化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:39:03