Der folgende Code wird True drucken, da die Serie mindestens ein Element enthält, das größer als 1 ist. Es scheint jedoch ein bisschen un-Pythonic. Gibt es eine pythonischere Methode, True zurückzugeben, wenn eine Serie eine Zahl enthält, die> ein bestimmter Wert ist?Überprüfen Sie, ob eine Pandas-Serie mindestens einen Eintrag größer als einen Wert hat
import pandas as pd
s = pd.Series([0.5, 2])
print True in (s > 1)
Wahre
EDIT: Nicht nur die oben genannte Antwort un-Pythonic, wird es manchmal ein falsches Ergebnis aus irgendeinem Grund zurückbringen. Zum Beispiel:
s = pd.Series([0.5])
print True in (s < 1)
Falsch
Wie erweitere Sie, dass der Betrieb zu einer Reihe von Spalten, so dass es zurückgibt, wenn unter allen Werten mindestens ein Wert größer als Null ist? –
@FedericoGentile meinst du sowas wie 'any (axis = 1) .any()'? Zuerst wird es in allen Zeilen in Ihrer Teilmenge überprüft und die Pandas-Serie wird erzeugt. Zweitens überprüfen Sie die Reihe auf "True" -Werte. Wenn nicht, könnten Sie ein Beispiel im Kommentar angeben oder vielleicht eine neue Frage mit allen Details stellen. –
Ich meine, wenn ich ein Datenframe mit 3 Spalten (A, B, C) habe und ich überprüfen möchte, ob es mindestens einen Wert größer als 0 in Spalte A und B gibt ... eine mögliche Lösung ist, dies zu tun: (df.A> 1) .any() und (df.B> 1) .any(). Gibt es einen schöneren und eleganteren Weg? –