2017-05-04 2 views
2

Dies sollte eine einfache Sache sein, aber nach ein paar Stunden der Suche bin ich immer noch ratlos für das, was ich falsch mache.Pandas Multilevel-Index für Zeilen

Ich habe verschiedene Methoden mit MultiIndexing.from_ und mehreren anderen Dingen ausprobiert, aber ich kann es einfach nicht richtig machen.

Ich brauche so etwas wie:
enter image description here

Aber stattdessen erhalte ich:
enter image description here Was mache ich falsch?

import pandas as pd 

list_of_customers = ['Client1', 'Client2', 'Client3'] 
stat_index = ['max', 'current', 'min'] 
list_of_historic_timeframes = ['16:10', '16:20', '16:30'] 

timeblock = pd.DataFrame(index=([list_of_customers, stat_index]), columns=list_of_historic_timeframes) 
timeblock.fillna(0, inplace=True) 

print(timeblock) 

Antwort

3
list_of_customers = ['Client1', 'Client2', 'Client3'] 
stat_index = ['max', 'current', 'min'] 
list_of_historic_timeframes = ['16:10', '16:20', '16:30'] 


timeblock = pd.DataFrame(
    0, 
    pd.MultiIndex.from_product(
     [list_of_customers, stat_index], 
     names=['Customer', 'Stat'] 
    ), 
    list_of_historic_timeframes 
) 

print(timeblock) 

        16:10 16:20 16:30 
Customer Stat       
Client1 max   0  0  0 
     current  0  0  0 
     min   0  0  0 
Client2 max   0  0  0 
     current  0  0  0 
     min   0  0  0 
Client3 max   0  0  0 
     current  0  0  0 
     min   0  0  0 
+0

Awesome! Vielen Dank. Auch nachdem ich mehrere Beispiele betrachtet hatte, benutzte ich den MultiIndex falsch und benutzte das falsche from_. – GeorgeLPerkins

+0

@GeorgeLPerkins Sie sind willkommen. – piRSquared

+0

Jetzt bin ich fest auf die Aktualisierung bestimmter Werte. Ich weiß, wie man mit mehrdimensionalen Numpy-Arrays arbeitet, aber aus irgendeinem Grund werde ich diese nicht richtig ansprechen. Ich kann eine ganze Zeile aktualisieren, aber ich kann eine Spalte nicht korrekt angeben. – GeorgeLPerkins

Verwandte Themen