Lets say I have following pandas
DataFrame
:
import pandas as pd df = pd.DataFrame({"A":[1,pd.np.nan,2], "B":[5,6,0]})
Which would look like:
>>> df A B 0 1.0 5 1 NaN 6 2 2.0 0
I know one way to check if a particular value is NaN
, which is as follows:
>>> df.isnull().ix[1,0] True
I thought below option, using ix
, would work as well, but it's not:
>>> df.ix[1,0]==pd.np.nan False
I also tried iloc
with same results:
>>> df.iloc[1,0]==pd.np.nan False
However if I check for those values using ix
or iloc
I get:
>>> df.ix[1,0] nan >>> df.iloc[1,0] nan
So, why is the second option not working? Is it possible to check for NaN
values using ix
or iloc
?
Check If any Value is NaN in pandas DataFrameUse DataFrame. isnull(). Values. any() method to check if there are any missing data in pandas DataFrame, missing data is represented as NaN or None values in DataFrame.
In order to check missing values in Pandas DataFrame, we use a function isnull() and notnull(). Both function help in checking whether a value is NaN or not. These function can also be used in Pandas Series in order to find null values in a series.
This is what Pandas documentation gives: na_values : scalar, str, list-like, or dict, optional Additional strings to recognize as NA/NaN. If dict passed, specific per-column NA values. By default the following values are interpreted as NaN: '', '#N/A', '#N/A N/A', '#NA', '-1.
You can check if a column contains/exists a particular value (string/int), list of multiple values in pandas DataFrame by using pd. series() , in operator, pandas. series. isin() , str.
Try this:
In [107]: pd.isnull(df.iloc[1,0]) Out[107]: True
UPDATE: in a newer Pandas versions use pd.isna():
In [7]: pd.isna(df.iloc[1,0]) Out[7]: True
The above answer is excellent. Here is the same with an example for better understanding.
>>> import pandas as pd >>> >>> import numpy as np >>> >>> pd.Series([np.nan, 34, 56]) 0 NaN 1 34.0 2 56.0 dtype: float64 >>> >>> s = pd.Series([np.nan, 34, 56]) >>> pd.isnull(s[0]) True >>>
I also tried couple of times, the following trials did not work. Thanks to @MaxU
.
>>> s[0] nan >>> >>> s[0] == np.nan False >>> >>> s[0] is np.nan False >>> >>> s[0] == 'nan' False >>> >>> s[0] == pd.np.nan False >>>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With