2016-04-23 7 views
1

Ich konnte keine Informationen dazu finden; vielleicht frage ich die falsche Frage, aber:Warum werden meine ursprünglichen Spaltenüberschriften nach dem Erstellen einer Pivot-Tabelle nicht in Python-Pandas als Datentypen (dtypes) angezeigt?

Ich habe zwei Pivot-Tabellen aus Daten erstellt:

In [1]: Test1 = pd.pivot_table(data,index=['Date','Time','Basket'], 
     values=['Total'],aggfunc=np.sum) 

und

In [2]: Test2 = pd.pivot_table(data,index=['Date','Time','Basket'], 
     values=['Total'],aggfunc=len) 

auf die Gesamtmenge pro Korb zu berechnen und die Anzahl von Artikeln pro Korb jeweils. Ich bekomme eine Ausgabe als Dataframe für jede Ausgabe, aber die Ausgabe erstellt "Total" als Spaltenüberschrift über den anderen ursprünglichen Spaltenüberschriften (im Folgenden für den Betrag pro Warenkorb) und hat auch leere Zellen.

        Total 
Date   Time  Basket 
07/29/05 10:00:04 103885 35.95 
      10:00:12 100984 28.97 

Als ich diesen neuen Datenrahmen für Menge pro Korb und Anzahl der Artikel pro Korb verketten, erhalte ich diese Tabelle:

       Total Total 
Date  Time  Basket  
07/29/05 10:00:04 103885 9  35.95 
      10:00:12 100984 8  28.97 

Und wenn ich Datentypen prüfen, erhalte ich eine Ausgabe, die nur sagt Total und Total sind Datentypen.

Total float64 
Total float64 
dtype: object 

Meine Fragen sind bitte zweifach: Was ist mit den anderen Spalten passiert? Und wie mache ich die anderen Spaltenüberschriften ... ähm, Überschriften wieder als dtypes alle auf derselben Zeile wie das 'Total' Ergebnis? Vielen Dank für Ihre Hilfe ..

Antwort

0

Wenn Sie die Verwendung von pivot_table aussehen, die Spalten ['Date','Time','Basket'] als index und damit die resultierenden DataFrame als diese drei Variablen als index geben werden.

können Sie reset_index verwenden:

pd.concat([Test1.reset_index(), Test2.reset_index()]) 
+0

Vielen Dank Colonel Beauvel! Ist es von Interesse, ob die Kolumnentitel "Total" auf anderen Achsen der Achse 0 liegen als die anderen Hauptüberschriften? – Theant6118

+0

hum vielleicht hab ich was verpasst: willst du horizontal oder vertikal verketten? Wenn das Triplet ['Date', 'Time', 'Basket'] unterschiedliche Werte hat und Sie vertikal verketten, gibt es kein Problem. –

+0

Ah .. Ich verstehe. Mein Fehler. Vielen Dank für Ihre Hilfe. – Theant6118

Verwandte Themen