Suchen Sie die Zeile, die die maximale Differenz zwischen zwei Spalten
Ich habe einen DataFrame mit den Spalten Gold
und Gold.1
. Ich möchte die Zeile zu finden, wo der Unterschied der beiden Spalten ist die maximale.
Für die folgenden DataFrame, das sollte mich zurückbringen Zeile 6.
df
Out:
Gold Gold.1
0 2 1
1 1 4
2 6 9
3 4 4
4 4 8
5 5 5
6 5 2 ---> The difference is maximum (3)
7 5 9
8 5 3
9 5 6
Ich habe versucht mit der folgenden:
df.where(max(df['Gold']-df['Gold.1']))
Jedoch das ausgelöst wird, ein ValueError:
df.wo(max(df['Gold']-df['Gold.1'])) Traceback (most recent call last): File "", line 1, in df.wo(max(df['Gold']-df['Gold.1'])) Datei "../python3.5/site-packages/pandas/core/generic.py", Zeile 5195, in denen raise_on_error) Datei "../python3.5/site-packages/pandas/core/generic.py" Linie 4936, in _where raise ValueError('Array bedingte muss dieselbe Form wie' ValueError: Array bedingte muss dieselbe Form wie selbst
Wie finde ich die Zeile, die diese Bedingung erfüllt?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Statt
.where
verwenden, können Sie.idxmax
:Diese wird wieder die index, wo der Unterschied ist maximal.
Wenn Sie möchten, suchen Sie die Zeile mit der maximalen absolute Unterschied, dann können Sie anrufen
.abs()
ersten.Obwohl meine Methode ist mehr als eines der oben erwähnten, von Menschen, die ein bequemes arbeiten mit Listen können Sie diese nützlich finden.