2016-03-12 110 views
1

對於下面一個簡單的程序不是索引,我期待第2個輸出是一樣的第一..set_index在大熊貓

這是爲什麼沒有發生?

它在data1,只是一個爲了改變data2

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 

回答

0

這是默認顯示的Multiindex。您可以通過將參數display.multi_sparse設置爲Falsewith來臨時更改它。

選項:display.multi_sparse

默認:真

功能:「Sparsify」多指標顯示(不顯示組內的外水平重複的元素)

Available optionsPandas

#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') 
+0

我曾試圖但這不起作用。 –

+0

什麼不行? – jezrael

+0

我已經設置的選項爲: pd.set_option(「display.multi_sparse」,FALSE) 它仍然顯示PID列2行的67213,我期待是在短短的一行,兩行以秒對應於67213 –