У меня есть следующий панда Dataframe с NaN
в нем.pandas проверка для nan не работает с использованием .isin()
import pandas as pd
df = pd.DataFrame([1,2,3,float('nan')], columns=['A'])
df
A
0 1
1 2
2 3
3 NaN
У меня также есть список filter_list
с помощью которой я хочу, чтобы фильтровать мой Dataframe. Но если я использую функцию .isin()
, она не обнаруживает NaN
. Вместо того, чтобы True
я получаю False
в последней строке
filter_list = [1, float('nan')]
df['A'].isin(filter_list)
0 True
1 False
2 False
3 False
Name: A, dtype: bool
Ожидаемый результат:
0 True
1 False
2 False
3 True
Name: A, dtype: bool
Я знаю, что я могу использовать .isnull()
для проверки NaNs
. Но здесь у меня есть и другие ценности, которые нужно проверить. Я использую pandas 0.16.0
версия
Редактировать: Список filter_list
исходит от пользователя. Таким образом, он может иметь или не иметь NaN
. Вот почему я использую .isin()
Это не сработает, потому что 'np' использует тот факт, что' NaN! = NaN', поэтому это не удается, поэтому сначала вам нужно сначала фильтровать значения «NaN», а затем фильтровать другие значения – EdChum
есть способ, которым я могу создать элемент 'NaN' в' filter_list', так что pandas это понимает? –
Нет, я так не думаю, например 'df ['A'] == float ('nan')' все еще не работает, в нижней строке вам нужно использовать 'isnull' или' notnull' для тестирования 'NaN' правильно – EdChum