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

如何基于前置条件为Pandas DataFrame设置case列值?

实现方法

直接用pandas的ffill()(向前填充)方法即可满足需求——它会把已设置好的buy/sell值,填充到后续的空值行中,直到遇到下一个触发条件(新的buy或sell),完美匹配你要的“保持上一个触发状态直到切换”逻辑。

完整代码

import pandas as pd

# 初始化数据
df = pd.DataFrame({'price': [1,2,8, 9, 3,5,20,8,7,1,2,3,4,6, 10, 15,9,8, 6, 75,1, 3, 20,30, 5, 4,31, 25, 8]})

# 设置初始触发条件的case值
df.loc[df['price']> 10, 'case'] = 'buy'
df.loc[df['price']< 5, 'case'] = 'sell'

# 向前填充空值,保持上一个触发状态
df['case'] = df['case'].ffill()

效果说明

执行后,所有price在5-10之间的行,都会继承最近一次触发的状态:

  • 触发buy后,后续5-10的行保持buy直到遇到sell
  • 触发sell后,后续5-10的行保持sell直到遇到buy

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 12:26:09