2016-03-12 2 views
1

Для простой программы ниже, я ожидал, что второй выход будет такой же, как первый ..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 в False с with.

Вариант: display.multi_sparse

По умолчанию: Правда

Функция: «Sparsify» мультииндексный дисплей (не отображать повторяющиеся элементы внешних уровней внутри групп)

Available options от Pandas.

#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) И все еще показывает 2 строки в столбце PID для 67213, который я ожидал быть только в одной строке и 2 строках в Sec столбец, соответствующий 67213 –

Смежные вопросы