Mit Pandas zu Finden, die Minimalen Werte der Gruppierten Zeilen

Das mag eine triviale Frage, aber ich bin immer noch versuchen, herauszufinden, pandas/numpy.

So, angenommen ich habe eine Tabelle mit der folgenden Struktur:

group_id | col1 | col2 | col3 |  "A"   |  "B"
   x     |   1  |   2  |  3   |  NaN   |   1
   x     |   3  |   2  |  3   |   1    |   1 
   x     |   4  |   2  |  3   |   2    |   1
   y     |   1  |   2  |  3   |  NaN   |   3 
   y     |   3  |   2  |  3   |   3    |   3 
   z     |   3  |   2  |  3   |   10   |   2
   z     |   2  |   2  |  3   |   6    |   2
   z     |   4  |   2  |  3   |   4    |   2
   z     |   4  |   2  |  3   |   2    |   2

Beachten Sie, dass es eine group_id, dass Gruppen, die Elemente in jeder Zeile.
Also am Anfang habe ich die Werte für die Spalten group_id und col1-col3.

Dann für jede Zeile, wenn col1, col2 oder col3 Wert = 1, dann "Ein" ist "NaN", andernfalls der Wert basiert auf einer Formel (irrelevant für hier, also legte ich einige zahlen in place).

Dass ich weiß, wie zu tun, mit:

df["A"] = np.where(((df['col1'] == 1)|(df['col2']== 1) | (df['col3']) == 1))), NaN, value)

Aber für die Spalte "B", muss ich es ausfüllen mit dem minimum der Werte aus Spalte A für eine bestimmte Gruppe.

Also zum Beispiel "B" ist gleich "1" für alle Zeilen mit Gruppe X, da der minimale Wert in Spalte A für alle der Gruppe "x" Zeilen gleich 1 ist.

Ebenso für die Zeilen in der Gruppe "y", der Minimalwert ist 3, und für die Gruppe "z" der Minimalwert ist 2. Wie genau mache ich das mit den pandas...? Das verwirrt mich ein wenig mehr, weil die Anzahl der Zeilen für eine bestimmte Gruppe können in unterschiedlicher Größe.

Wenn Sie alle die gleiche Größe, ich könnte einfach sagen, füllen Sie es mit dem minimum der Werte in einem bestimmten Bereich.

Ich hoffe, dass Sinn gemacht; bitte lassen Sie mich wissen, wenn ich ein klareres Beispiel oder etwas verdeutlichen!

InformationsquelleAutor shishy | 2017-01-03
Schreibe einen Kommentar