使用多级索引将列插入数据框中



我已经创建了一个dataframe data,这是各种列的串联,如下:

import pandas as pd
data_lp = pd.read_csv("fil1.csv",sep=",", comment='#')
data_mip = pd.read_csv("file2.csv",sep=",", comment='#')
data=pd.concat([data_lp[['name','vars','con']],
                data_lp[['obj','t(ms)']],
                data_mip[['obj','t(ms)']]],
               keys=['','LP', 'MIP'],
               sort=False,axis=1)

结果:

                         LP                 MIP
    name    vars    con  obj        t(ms)   obj t(ms)
0   bop0    50      6    573.531624 155     285.0   252
1   bop1    50      6    420.036781 223     247.0   334

现在,我想在objt(ms)之间插入MIP下的新列gap。我该怎么做?

gap=(data['LP']['obj']-data['MIP']['obj'])/data['MIP']['obj']
data['MIP'].insert(1,'gap',gap) #this doesn't work

MultiIndex中使用元组进行分配值,对于新第六列的1也是必要的CC_7:

data.insert(6,('MIP','gap'),gap)
print (data)
                          LP          MIP                
   name vars con         obj t(ms)    obj       gap t(ms)
0  bop0   50   6  573.531624   155  285.0  1.012392   252
1  bop1   50   6  420.036781   223  247.0  0.700554   334

最新更新