2017-12-27 3 views
1

Mein Code funktioniert, das ist gut lol, aber die Ausgabe muss anders sein, wie es angezeigt wird.Groupby in Pandas

AKTUALISIERT CODE SEIT ANTWORT recieving

import pandas as pd 

# Import File 
YMM = pd.read_excel('C:/Users/PCTR261010/Desktop/OMIX_YMM_2016.xlsx').groupby(['Make','Model']).agg({'StartYear':'min', 'EndYear':'max'}) 

print(YMM) 

Die Ausgabe sieht wie folgt Make | Modell | StartJahr | EndYear, mit allen Marken in der Spalte unten die Make Spalte neben der Modell Spalte. Die Marken werden jedoch wie eine Pivot-Tabelle gefiltert.

Hier ist ein Screenshot:
enter image description here

I American Motors neben jedem American Motors Model, jeder Buick neben jedem Buick Modell und so weiter benötigen.

Hier ist der Link-Daten zu probieren: Das http://jmp.sh/KLZKWVZ

+0

Sie keine Verknüpfung zu Daten. Teile es stattdessen hier. –

Antwort

2

Versuchen:

res = YMM.groupby(['Make','Model'], as_index=False).agg({'StartYear':'min', 'EndYear':'max'}) 

oder

res = YMM.groupby(['Make','Model']).agg({'StartYear':'min', 'EndYear':'max'}).reset_index() 
+0

Das ist es! Ich spielte mit .agg und kam nicht dazu. Jetzt brauche ich nur das Make um die Spalte neben dem Model zu wiederholen. –

+0

@SamRussoPalmer, froh, dass es hilft. Meine Unternehmens-Firewall erlaubt mir nicht, Ihre Beispieldaten herunterzuladen ... Ich kann es später von zu Hause aus herunterladen. Könnten Sie bitte ein Beispiel für den gewünschten Datensatz posten, weil (; brauche das Make um die Spalte neben dem Model zu wiederholen.) Nicht klar für mich – MaxU

+0

Aktualisiert, aber ich musste einen Screenshot machen, aber darunter habe ich erklärt. –

1

mit Ihrem eigenen Code

Min = YMM.groupby(['Make','Model']).StartYear.min() 
Max = YMM.groupby(['Make','Model']).EndYear.max() 

Min['Endyear']=Max.EndYear