【问题标题】:Inserting column into dataframe with multi-level index将列插入具有多级索引的数据框中
【发布时间】:2019-11-17 06:59:12
【问题描述】:

我创建了一个数据框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

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

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

【问题讨论】:

    标签: python-3.x pandas dataframe


    【解决方案1】:

    MultiIndex 中使用元组赋值,对于新的第六列也有必要将1 更改为6

    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
    

    【讨论】:

      猜你喜欢
      • 2020-12-17
      • 2014-08-09
      • 1970-01-01
      • 1970-01-01
      • 2017-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-23
      相关资源
      最近更新 更多