Angenommen, ich habe einen Datenrahmen df
mit einer Spalte value
mit einigen Float-Werte und einige NaN
. Wie kann ich den Teil des Datenrahmens erhalten, in dem wir NaN
mit der Abfragesyntax haben?Abfrage für NaN und andere Namen in Pandas
Die folgenden, zum Beispiel funktioniert nicht:
df.query('(value < 10) or (value == NaN)')
ich name NaN is not defined
erhalten (gleiche für df.query('value ==NaN')
)
Generell gibt es eine Möglichkeit, numpy Namen in Query zu verwenden, wie inf
, nan
, pi
, e
usw.?
Es sollte eine bessere Möglichkeit, dies zu tun ... aber ich mag den Hack. –
Der '@ nan'-Trick funktioniert * nicht * für' numpy' vars, z. 'nan = numpy.nan'. Es * funktioniert * um andere * Zeichenketten * herauszufiltern. – javadba
@javadba: ähm, der ganze Punkt dieses Abschnitts soll zeigen, dass '(Wert == @nan)' _doesn_ nicht funktioniert, weil Nan nicht gleich selbst ist, daher meine Verwendung des 'value! = Wertes' Trick. – DSM