2016-06-07 10 views
0

Ich bin mit Python Pandas im Griff.Unregelmäßiges Binning von Python Pandas Datenrahmen

Das folgende Spielzeugproblem veranschaulicht ein Problem, das ich in einer verwandten Übung habe.

Ich habe einen Datenrahmen sortiert, so dass es eine Spalte Wert präsentiert (in diesem Testergebnis Falles Studenten) in aufsteigender Reihenfolge:

df_sorted = 
    variable test_score 
    1   52.0 
    1   53.0 
    4   54.0 
    6   64.0 
    6   64.0 
    6   64.0 
    5   71.0 
    10   73.0 
    15   75.0 
    4   77.0 

Allerdings würde ich jetzt wie zu sind der Daten-Rahmen mit Hilfe von 2 Spalten (hier "Variable" und "Test_Score"), aber für jeden X-Eintrag vom Anfang bis zum Ende des Datenrahmens. Dadurch erstelle ich auch Behälter, die die gleiche Anzahl von Einträgen enthalten (sehr nützlich zum Zeichnen in meiner zugehörigen Übung).

Der Ausgang, wenn ich bin alle 3 Zeilen würde daher wie folgt aussieht:

df_sorted_binned = 
    variable test_score 
    2   53.0 
    6   64.0 
    10   73.0 
    4   77.0 

Kann jemand sehen, wie ich einfach das tun kann?

Viel verpflichtet!

Antwort

1

Gerade groupby ein Dummy-Variable, die 0 geht, 0, 0, 1, 1, 1, usw. Dies kann mit Boden Teilung erhalten:

>>> d.groupby(np.arange(len(d))//3).mean() 
    variable test_score 
0   2   53 
1   6   64 
2  10   73 
3   4   77 
+0

Danke, BrenBarn, die schön funktioniert. Vielleicht könnte ich Sie etwas kniffliger nachfragen fragen? –

+0

Wenn Sie eine andere Frage haben, sollten Sie sie wahrscheinlich als separate Frage veröffentlichen. – BrenBarn

+0

Hallo Bren - einverstanden! Ich werde in Kürze folgen. Nochmals vielen Dank für Ihre schnelle Hilfe. –