从Dataframe创建Set对象(使用nonNaN值过滤)

时间:2018-04-09 09:23:32

标签: dataframe set nan pyomo

我们假设,我有一个以下数据帧,我想从该df生成一个Set-Object。

>data
         x     
Name                              
A        NaN
B        65,2
C        NaN

我想创建一个集合,它只包含带有nonNaN(float)值的元素。所以在上面的情况下,它只是“B”。

如果我使用以下代码创建我的Set-Object:

# code
m.index = pyomo.Set(
    initialize=data.index.get_level_values(0).unique(),
    doc='Index Set')

我得到一组“A”,“B”,“C”。

我想要实现的是:“B”应该是此集合的唯一元素,因为它是唯一具有有效值的元素。

预期结果:

# output
(Pdb) m.index.pprint()
index : Index Set
    Dim=0, Dimen=1, Size=1, Domain=None, Ordered=False, Mutable=True, Bounds=None
    ['B']

1 个答案:

答案 0 :(得分:0)

经过一番挖掘和尝试后,我找到了答案:

以下代码给出了预期的结果。

m.index = pyomo.Set(
    initialize=data[data.notnull()].index.get_level_values(0).unique(),
    doc='Index Set')