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

如何从过滤非NaN值的DataFrame创建Pyomo Set对象

解决Pyomo Set仅保留有效浮点型索引的问题

没问题,我来帮你搞定这个需求!你现在的代码直接用了DataFrame的所有唯一索引,所以会包含A、B、C三个值。要只保留x列非NaN且为浮点型的索引(也就是"B"),需要先对DataFrame做过滤处理,再用过滤后的索引初始化Pyomo Set,具体步骤如下:

步骤1:清理并转换x列数据

首先,你的x列里的65,2看起来是欧洲格式的小数(用逗号做小数点分隔符),需要先把它转换成标准的浮点型,同时保留原有的NaN值:

import pandas as pd
import pyomo.environ as pyo

# 处理x列,将逗号替换为点后转为数值类型,无效值转为NaN
data['x'] = pd.to_numeric(data['x'].str.replace(',', '.'), errors='coerce')

步骤2:筛选有效索引

接着,筛选出x列非NaN的行,提取它们的索引:

# 过滤出x列不为NaN的行,获取唯一索引
valid_indices = data[data['x'].notna()].index.unique()

步骤3:初始化Pyomo Set

最后用筛选后的有效索引来创建Set:

m = pyo.ConcreteModel()
m.index = pyo.Set(initialize=valid_indices, doc='Index Set with valid non-NaN float values')

这样创建出来的m.index就只会包含"B"这个索引啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:08:56