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: 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, etc
wie denkst du - sollten wir ihn schließen, als ein dupe?

InformationsquelleAutor Cedric Zoppolo | 2017-11-22

Schreibe einen Kommentar