У меня есть таблица с колонкой, которая имеет некоторые значения NaN в нем:Получение всех строк со значением NaN
A B C D
2 3 2 Nan
3 4 5 5
2 3 1 Nan
Я хотел бы получить все строки, где D = NaN. Как я могу это сделать?
У меня есть таблица с колонкой, которая имеет некоторые значения NaN в нем:Получение всех строк со значением NaN
A B C D
2 3 2 Nan
3 4 5 5
2 3 1 Nan
Я хотел бы получить все строки, где D = NaN. Как я могу это сделать?
Создание пеленгации для иллюстрации (содержащего Nan)
In [86]: df =pd.DataFrame({'a':[1,2,3],'b':[3,4,5],'c':[np.nan, 4,5]})
In [87]: df
Out[87]:
a b c
0 1 3 NaN
1 2 4 4
2 3 5 5
Checking, какие индексы имеют нуль для столбца с
In [88]: pd.isnull(df['c'])
Out[88]:
0 True
1 False
2 False
Name: c, dtype: bool
Checking каких индексы не имеют нуль для столбца с
In [90]: pd.notnull(df['c'])
Out[90]:
0 False
1 True
2 True
Name: c, dtype: bool
Выбор строк df, где c не является нулевым
In [91]: df[pd.notnull(df['c'])]
Out[91]:
a b c
1 2 4 4
2 3 5 5
Выбор строк ДФ где с нулевым
In [93]: df[pd.isnull(df['c'])]
Out[93]:
a b c
0 1 3 NaN
Выбор строк столбца с ФР, где с не нулевой
In [94]: df['c'][pd.notnull(df['c'])]
Out[94]:
1 4
2 5
Name: c, dtype: float64
Для решения, которое не включает в себя панд, вы можете сделать что-то вроде:
goodind=np.where(np.sum(np.isnan(y),axis=1)==0)[0] #indices of rows non containing nans
(или отрицание, если вы хотите строки с nan) и использовать индексы для обработки данных. Я не уверен sum
- лучший способ объединить булевы, но np.any
и np.all
, похоже, не имеют параметра axis
, так что это лучший способ найти.
Являются ли данные в кадре данных pandas или csv-файле? –
Данные находятся в файле CSV. – MJP