Python Pandas - wie man nach einem Multiindex gruppiert

9

Unten ist mein Datenrahmen. Ich habe einige Transformationen durchgeführt, um die Kategorie-Spalte zu erstellen und die ursprüngliche Spalte, von der sie abgeleitet wurde, abgelegt. Jetzt muss ich eine Gruppe machen, um die Duplikate z. Love und Fashion können über eine groupby sum zusammengerollt werden.

%Vor%

Hier ist der Index, der erstellt wurde, als ich den Datenrahmen erstellt habe

%Vor%

Ich nehme an, ich möchte den Index löschen und das Datum und die Kategorie als multiindex erstellen und dann eine groupby Summe der Metriken. Wie mache ich das in Pandas Dataframe?

%Vor%

Python ist 2.7 und Pandas ist 0.7.0 auf ubuntu 12.04. Unten ist der Fehler, den ich bekomme, wenn ich das unten

führe %Vor%     
Tampa 05.11.2013, 20:24
quelle

1 Antwort

18

Sie können den Index für den vorhandenen Datenrahmen erstellen. Mit der zur Verfügung gestellten Datenmenge funktioniert das für mich:

%Vor%

Wenn Sie doppelte Indexprobleme mit dem vollständigen Dataset haben, müssen Sie die Daten ein wenig aufräumen. Entfernen Sie die doppelten Zeilen, wenn dies möglich ist. Wenn die doppelten Zeilen gültig sind, was unterscheidet sie dann voneinander? Wenn Sie das zum Datenrahmen hinzufügen und es in den Index aufnehmen können, ist das ideal. Ist dies nicht der Fall, erstellen Sie einfach eine Dummy-Spalte mit dem Standardwert 1, aber 2 oder 3 oder ... N im Fall von N duplicates - und fügen Sie dieses Feld dann ebenfalls in den Index ein.

Alternativ bin ich mir ziemlich sicher, dass Sie die Indexerstellung und direkt groupby mit Spalten überspringen können:

df.groupby(by=['date', 'category']).sum()

Dies funktioniert wiederum mit der Teilmenge der von Ihnen geposteten Daten.

    
Paul H 05.11.2013, 20:31
quelle

Tags und Links