2017-01-15 6 views
0

Ich möchte Zeilen nach dem Spaltenwert gruppieren.Wie benutzt man Pandas groupby, um eine Zählung zu erhalten?

Dies ist, was die Datenrahmen wie folgt aussieht:

Id  model  c3 c4 c5 c6 ...etc 
174_ap c:143  ar ... 
174_dp c:143  rv ... 
777_ap c:177  gb ... 
777_dp c:177  ch ... 

Es gibt zwei Linien pro Auto, ap die erste Prüfung auf checkin ist und die Überprüfung der Kasse dp. Da nur das Modell auf den Linien wiederholt ich anschließen möchten, habe ich versucht, sie verbinden mit:

df = df.groupby('model') 

Aber die resultierende df sieht genauso aus wie die vorhergehende, änderte nichts.

Was mache ich hier falsch?

PS .: Die Anzahl der Spalten für jedes Auto und Scheck variiert.

+0

Du musst dann eigentlich * etwas machen * mit dem gruppierten df .... – smci

Antwort

0

Es scheint nur model wird wiederholt; so von Gruppierung, wenn die Absicht ist, die Anzahl zu bekommen, funktioniert groupby funktioniert.

enter image description here

0

ich Id gespalten würde, stellen Sie den Index mit dem Split und unstack.

idx = df.Id.str.split('_', expand=True).values.T.tolist() 
df.drop('Id', 1).set_index(idx).stack().unstack([1, 2]) 

     ap     dp    
    model c3 c4 c5 model c3 c4 c5 
174 c:143 ar ar ar c:143 rv rv rv 
777 c:177 gb gb gb c:177 ch ch ch 
Verwandte Themen