2015-09-21 2 views
0

Я пытаюсь воссоздать этот мультииндексный фреймворк, чтобы помочь мне запустить некоторые тесты, но я боюсь. Он имеет 2 уровня на каждой оси. Он должен выглядеть следующим образом: значения в кадре данных не важны, но структура.Как создать эту мультииндексе DataFrame

Question   YTA_Q3 
Values     @ 
Question Values   
YTA_Q3 1  29.014949 
     2  5.026059 
     3  6.626912 
     4  1.356526 
     99  41.632222 
     96  21.279500 

индекс и столбцы возврата:

df.index 
Question Values 
YTA_Q3 1  
      2  
      3  
      4  
      99  
      96 

df.columns 
Question Values 
YTA_Q3 @ 

Моя попытка:

l = [['q3','1',99],['q3','2',11],['q3','3',105],['q3','4',97],['q3','99',97],['q3','96',97]] 
df = pd.DataFrame(l,columns = ['question','values','@']) 
df.set_index(['question'],inplace=True) 
df 

     values @ 
question   
q3  1 99 
q3  2 11 
q3  3 105 
q3  4 97 
q3  99 97 
q3  96 97 

ответ

2

Вот способ построить ожидаемый DataFrame.

tuples = [('YTA_Q3', 1), ('YTA_Q3', 2), ('YTA_Q3', 3), ('YTA_Q3', 4), ('YTA_Q3', 99), ('YTA_Q3', 96)] 
# Index 
index = pd.MultiIndex.from_tuples(tuples, names=['Questions', 'Values']) 
# Columns 
columns = pd.MultiIndex.from_tuples([('YTA_Q3', '@')], names=['Questions', 'Values']) 
# Data 
data = [29.014949,5.0260590000000001, 
    6.6269119999999999, 
    1.3565260000000001, 
    41.632221999999999, 
    21.279499999999999] 

df = pd.DataFrame(data=data, index=index, columns=columns) 
print(df) 

Questions   YTA_Q3 
Values     @ 
Questions Values   
YTA_Q3 1  29.014949 
      2  5.026059 
      3  6.626912 
      4  1.356526 
      99  41.632222 
      96  21.279500 
+0

Спасибо! гнездование меня смутило! –

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