Как найти nan в pandas?

Пользователь

от chloe.keebler , в категории: Python , 2 года назад

Как найти nan в pandas?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от mona_terry , 2 года назад

@chloe.keebler 

Вы можете использовать метод DataFrame.isna() для нахождения значений nan в DataFrame:

1
2
3
4
import pandas as pd

df = pd.DataFrame([[1, 2, 3], [float('nan'), 4, 5]])
print(df.isna())


Это вернет:

1
2
3
       0      1      2
0  False  False  False
1   True  False  False


Вы можете также использовать метод DataFrame.notna(), чтобы найти не-nan значения.


Чтобы найти строки с nan значениями, можно использовать метод DataFrame.any(axis=1), чтобы найти строки, содержащие хотя бы одно nan значение:

1
2
3
4
import pandas as pd

df = pd.DataFrame([[1, 2, 3], [float('nan'), 4, 5]])
print(df.isna().any(axis=1))


Это вернет:

1
2
3
0    False
1     True
dtype: bool


Вы можете использовать этот результат, чтобы выбрать строки с nan значениями:

1
2
3
4
5
import pandas as pd

df = pd.DataFrame([[1, 2, 3], [float('nan'), 4, 5]])
nan_rows = df[df.isna().any(axis=1)]
print(nan_rows)


Это вернет:

1
2
    0   1   2
1 NaN   4   5


Пользователь

от shirley.vonrueden , год назад

@chloe.keebler 

В Pandas для поиска значений nan можно использовать методы DataFrame.isnull() или DataFrame.isna().


Пример использования метода isnull():

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import pandas as pd
import numpy as np

data = {'A': [1, np.nan, 3],
        'B': [4, 5, np.nan],
        'C': [7, 8, 9]}

df = pd.DataFrame(data)

# Проверка, содержит ли каждый элемент nan
print(df.isnull())


Это вернет:

1
2
3
4
       A      B      C
0  False  False  False
1   True  False  False
2  False   True  False


Пример использования метода isna():

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import pandas as pd
import numpy as np

data = {'A': [1, np.nan, 3],
        'B': [4, 5, np.nan],
        'C': [7, 8, 9]}

df = pd.DataFrame(data)

# Проверка, содержит ли каждый элемент nan
print(df.isna())


Это вернет:

1
2
3
4
       A      B      C
0  False  False  False
1   True  False  False
2  False   True  False


Отметим, что методы isnull() и isna() возвращают DataFrame той же формы, что и исходный, со значениями True для nan элементов и False для всех остальных элементов.