Mit Python Pandas versuche ich das Country
& Place
mit dem Maximalwert zu finden .
Dies gibt den Maximalwert zurück:
data.groupby(['Country','Place'])['Value'].max()
Aber wie bekomme ich den entsprechenden Country
und Place
Namen?
Angenommen, es df
gibt einen eindeutigen Index, ergibt dies die Zeile mit dem Maximalwert:
In [34]: df.loc[df['Value'].idxmax()]
Out[34]:
Country US
Place Kansas
Value 894
Name: 7
Beachten Sie, dass idxmax
Renditen Index Etiketten . Wenn der DataFrame also Duplikate im Index enthält, kann die Beschriftung die Zeile möglicherweise nicht eindeutig identifizierendf.loc
möglicherweise mehr als eine Zeile zurückgegeben wird.
Wenn Sie df
keinen eindeutigen Index haben, müssen Sie den Index daher eindeutig machen, bevor Sie wie oben beschrieben vorgehen. Abhängig vom DataFrame können Sie den Index manchmal verwenden stack
oder set_index
eindeutig machen. Sie können den Index auch einfach zurücksetzen (sodass die Zeilen ab 0 neu nummeriert werden):
df = df.reset_index()
Dies gibt die gesamte Zeile mit dem Maximalwert zurück
quelle
Das Land und der Ort sind der Index der Serie. Wenn Sie den Index nicht benötigen, können Sie Folgendes festlegen
as_index=False
:Bearbeiten:
Es scheint, dass Sie den Ort mit dem maximalen Wert für jedes Land wollen. Der folgende Code macht das, was Sie wollen:
quelle
Ich denke, der einfachste Weg, eine Zeile mit dem Maximalwert zurückzugeben, besteht darin, ihren Index abzurufen.
argmax()
kann verwendet werden, um den Index der Zeile mit dem größten Wert zurückzugeben.Jetzt kann der Index verwendet werden, um die Funktionen für diese bestimmte Zeile abzurufen:
quelle
Verwenden Sie das
index
Attribut vonDataFrame
. Beachten Sie, dass ich nicht alle Zeilen im Beispiel eingebe.Sie können den Wert auch über diesen Index abrufen:
Bearbeiten
Entschuldigen Sie das Missverständnis, was Sie wollen. Versuchen Sie Folgendes:
quelle
Verwenden Sie die folgende Codezeile, um Land und Ort mit maximalem Wert zu drucken.
quelle
Meine Lösung zum Finden von Maximalwerten in Spalten:
, auch Minimum:
quelle
Ich würde empfehlen,
nlargest
für eine bessere Leistung und kürzeren Code zu verwenden. importierenpandas
quelle
Sie können verwenden:
print (df [df ['Wert'] == df ['Wert']. max ()])
quelle
pandas importieren
df ist der von Ihnen erstellte Datenrahmen.
Verwenden Sie den Befehl:
Dies zeigt das Land und den Ort an, dessen Wert maximal ist.
quelle
Beim Importieren von Daten mit Pandas ist ein ähnlicher Fehler aufgetreten. Die erste Spalte in meinem Datensatz enthielt Leerzeichen vor dem Wortanfang. Ich habe die Leerzeichen entfernt und es hat wie ein Zauber funktioniert !!
quelle