Die Prüfung, ob bestimmten Wert (in Zelle) NaN in pandas DataFrame funktioniert nicht mit ix oder iloc
Können sagen, ich habe folgenden pandas
DataFrame
:
import pandas as pd
df = pd.DataFrame({"A":[1,pd.np.nan,2], "B":[5,6,0]})
Die würde wie folgt Aussehen:
>>> df
A B
0 1.0 5
1 NaN 6
2 2.0 0
Erste option
Ich weiß einen Weg, um zu überprüfen, ob ein bestimmter Wert ist NaN
, die ist wie folgt:
>>> df.isnull().ix[1,0]
True
Zweite option (funktioniert nicht)
Dachte ich, unten option mit ix
, würde auch funktionieren, aber es ist nicht:
>>> df.ix[1,0]==pd.np.nan
False
Ich habe auch versucht iloc
mit dem gleichen Ergebnis:
>>> df.iloc[1,0]==pd.np.nan
False
Jedoch wenn ich die Option für diese Werte mit ix
oder iloc
ich bekommen:
>>> df.ix[1,0]
nan
>>> df.iloc[1,0]
nan
So, warum ist die zweite option nicht funktioniert? Ist es möglich zu überprüfen, für NaN
Werte mit ix
oder iloc
?
Erklärung: versuchen Sie dies:
Das gibt
stackoverflow.com/questions/20320022/...
Das ist die Natur der "not A Number". Aus diesem Grund haben wir
wie denkst du - sollten wir ihn schließen, als ein dupe?
pd.np.nan == pd.np.nan
😉Das gibt
False
! Warum ist das so?stackoverflow.com/questions/20320022/...
Das ist die Natur der "not A Number". Aus diesem Grund haben wir
pd.isnull()
, pd.notnull()
, IS (NOT) NULL
in SQL, etcwie denkst du - sollten wir ihn schließen, als ein dupe?
InformationsquelleAutor Cedric Zoppolo | 2017-11-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie dies:
pd.isnull(df).iloc[1][0]
Ich mag deine ursprüngliche version (in der Frage) -
df.isnull().ix[1,0]
besserauch
np.isnan(df.iloc[1,0])
zu überprüfen, ob eine Zahl nan.InformationsquelleAutor MaxU
Die obige Antwort ist ausgezeichnet. Hier ist das gleiche mit einem Beispiel zum besseren Verständnis.
Ich habe auch versucht paar mal, die folgenden Prüfungen nicht arbeiten. Dank
@MaxU
.InformationsquelleAutor hygull