set_index没有在pandas中索引

时间:2016-03-12 17:58:57

标签: python pandas dataframe multi-index

对于下面的简单程序,我期待第二个输出与第一个输出相同..

为什么不发生这种情况?

这只是data1data2

中的订单更改
columnList = ["PID", "Sec", "Util", "random"]

data1 = [('67123', 12, '85' , '100'),  
         ('67123', 112, '15', '100'),
         ('87878', 23, "95", '100'), 
        ]

df1 = pd.DataFrame(data1, columns=columnList)
df1 = df1.set_index(["PID", "Sec"])
print df1

         Util random

PID   Sec            

67123 12    85    100

      112   15    100

87878 23    95    100
data2 = [('67123', 12, '85' , '100'),  
         ('87878', 23, "95", '100'), 
         ('67123', 112, '15', '100'),
        ]

df2 = pd.DataFrame(data2, columns=columnList)
df2 = df2.set_index(["PID", "Sec"])
print df2
          Util random

PID   Sec            

67123 12    85    100

87878 23    95    100

67123 112   15    100

1 个答案:

答案 0 :(得分:0)

默认显示Multiindex。您可以通过display.multi_sparse将参数False设置为with来临时更改它。

  

选项:display.multi_sparse

     

默认:True

     

功能:“Sparsify”MultiIndex显示(不显示组内外层的重复元素)

Pandas

Available options

#default options
#set temporary multi_sparse to True
with pd.option_context('display.multi_sparse', True):
    print df1

          Util random
PID   Sec            
67123 12    85    100
      112   15    100
87878 23    95    100

#same as
print df1    

          Util random
PID   Sec            
67123 12    85    100
      112   15    100
87878 23    95    100

#set temporary multi_sparse to False    
with pd.option_context('display.multi_sparse', False):
    print df1    
          Util random
PID   Sec            
67123 12    85    100
67123 112   15    100
87878 23    95    100

如果您需要set it,请使用:

 pd.set_option('display.multi_sparse', False)

并重置:

pd.reset_option('multi_sparse')