DataFrame.dropna() / Series.dropna()
Метод dropna() удаляет строки или столбцы, содержащие пропущенные значения (NaN, NaT, None). Параметры позволяют тонко настроить порог.
Сигнатура
DataFrame.dropna(axis=0, how="any", thresh=None,
subset=None, inplace=False, ignore_index=False)
Series.dropna(axis=0, inplace=False, how=None, ignore_index=False)
Параметры
axis— 0 (строки) или 1 (столбцы).how—"any"(любой NaN) или"all"(все NaN).thresh— минимум валидных значений для сохранения.subset— столбцы/строки, по которым проверять.inplace— изменить на месте.
Возвращаемое значение
Объект того же типа без пропусков.
Примеры
Пример 1. Series
import pandas as pd
import numpy as np
s = pd.Series([1, np.nan, 3, np.nan, 5])
print(s.dropna())
0 1.0
2 3.0
4 5.0
dtype: float64
Пример 2. Удаление строк с пропусками
Очистка лога датчиков от строк, где не было показания:
import pandas as pd
import numpy as np
df = pd.DataFrame({
"temp": [22.1, np.nan, 22.5],
"hum": [55, 58, np.nan],
})
print(df.dropna())
temp hum
0 22.1 55.0
Пример 3. how=»all»
import pandas as pd
import numpy as np
df = pd.DataFrame({"a": [1, np.nan, np.nan], "b": [2, np.nan, 5]})
print(df.dropna(how="all"))
a b
0 1.0 2.0
2 NaN 5.0
Пример 4. thresh — минимум валидных значений
import pandas as pd
import numpy as np
df = pd.DataFrame({
"a": [1, np.nan, 3],
"b": [np.nan, np.nan, 6],
"c": [7, np.nan, 9],
})
print(df.dropna(thresh=2))
a b c
0 1.0 NaN 7.0
2 3.0 6.0 9.0
Пример 5. По subset
import pandas as pd
import numpy as np
df = pd.DataFrame({"a": [1, 2, np.nan], "b": [np.nan, 5, 6]})
print(df.dropna(subset=["a"]))
a b
0 1.0 NaN
1 2.0 5.0
См. также
Примечание
Лицензия и источники
Техническое описание функции адаптировано из официальной документации Pandas (https://pandas.pydata.org/docs/), BSD-3-Clause License. Примеры и пояснения — © AlashEd Wiki.