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

Pandas DataFrame如何基于指定列当前与前一行值新增极性切换标识列

正确实现代码

直接用pandas向量化操作实现,性能高且逻辑完全匹配需求:

# 分别判断两种极性反转场景
cond1 = (data['customer_csate_score'].shift() <= 0) & (data['customer_csate_score'] > 0)
cond2 = (data['customer_csate_score'].shift() >= 0) & (data['customer_csate_score'] < 0)
# 合并条件取或,首行无前置值默认填充False
data['customer_csate_score_toggle_status'] = (cond1 | cond2).fillna(False)
原有代码错误说明
  • 尝试1错误点:
    apply调用逻辑错误,lambda参数传入的是完整的customer_csate_score全列和shift后的全列,而非逐行对应的当前值、前值,返回结果不符合预期。且逐行apply性能远低于向量化操作,不推荐使用。
  • 尝试2错误点:
    条件括号优先级错误,仅实现了单种极性反转逻辑,且将筛选后的DataFrame子集直接赋值给新列,会导致不满足条件的行全部为NaN,不符合要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 12:30:01