@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 |
@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 для всех остальных элементов.