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.