Pandas: как использовать dropna() с thresh


Вы можете использовать функцию dropna() для удаления строк из DataFrame pandas, содержащих пропущенные значения.

Вы также можете использовать аргумент thresh , чтобы указать минимальное количество значений, отличных от NaN, которые строка или столбец должны сохранять в DataFrame.

Вот наиболее распространенные способы использования порогового аргумента на практике:

Способ 1. Сохраняйте только строки с минимальным количеством значений, отличных от NaN.

 #only keep rows with at least 2 non-NaN values
df. dropna (thresh= 2 )

Способ 2. Сохраняйте только строки с минимальным процентом значений, отличных от NaN.

 #only keep rows with at least 70% non-NaN values
df. dropna (thresh= 0.7 * len (df. columns ))

Способ 3. Сохраняйте только столбцы с минимальным количеством значений, отличных от NaN.

 #only keep columns with at least 6 non-NaN values
df. dropna (thresh= 6 ,axis= 1 )

Способ 4. Сохраняйте только столбцы с минимальным процентом значений, отличных от NaN.

 #only keep columns with at least 70% non-NaN values
df. dropna (thresh= 0.7 * len (df), axis= 1 )

В следующих примерах показано, как использовать каждый метод на практике со следующим DataFrame pandas:

 import pandas as pd
import numpy as np

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                   ' points ': [18, np.nan, 19, 14, 14, 11, 20, np.nan],
                   ' assists ': [5, np.nan, np.nan, 9, np.nan, 9, 9, 4],
                   ' rebounds ': [11, np.nan, 10, 6, 6, 5, 9, np.nan]})

#view DataFrame
print (df)

  team points assists rebounds
0 A 18.0 5.0 11.0
1 B NaN NaN NaN
2 C 19.0 NaN 10.0
3D 14.0 9.0 6.0
4 E 14.0 NaN 6.0
5 F 11.0 9.0 5.0
6G 20.0 9.0 9.0
7H NaN 4.0 NaN

Пример 1. Сохраняйте только строки с минимальным количеством значений, отличных от NaN.

Мы можем использовать следующий синтаксис, чтобы сохранять в DataFrame только те строки, которые имеют как минимум два значения, отличные от NaN:

 #only keep rows with at least 2 non-NaN values
df. dropna (thresh= 2 )

	team points assists rebounds
0 A 18.0 5.0 11.0
2 C 19.0 NaN 10.0
3D 14.0 9.0 6.0
4 E 14.0 NaN 6.0
5 F 11.0 9.0 5.0
6G 20.0 9.0 9.0
7H NaN 4.0 NaN

Обратите внимание, что строка с индексом 1 была удалена, поскольку во всей строке у нее было только одно значение, отличное от NaN.

Пример 2. Сохраняйте только строки с минимальным процентом значений, отличных от NaN.

Мы можем использовать следующий синтаксис, чтобы сохранять в DataFrame только те строки, которые имеют не менее 70% значений, отличных от NaN:

 #only keep rows with at least 70% non-NaN values
df. dropna (thresh= 0.7 * len (df. columns ))

        team points assists rebounds
0 A 18.0 5.0 11.0
2 C 19.0 NaN 10.0
3D 14.0 9.0 6.0
4 E 14.0 NaN 6.0
5 F 11.0 9.0 5.0
6G 20.0 9.0 9.0

Обратите внимание, что строки в позициях индекса 1 и 7 были удалены, поскольку эти строки не содержали хотя бы 70% значений в виде значений, отличных от NaN.

Пример 3. Сохраняйте только столбцы с минимальным количеством значений, отличных от NaN.

Мы можем использовать следующий синтаксис, чтобы сохранять в DataFrame только те столбцы, которые имеют как минимум 6 значений, отличных от NaN:

 #only keep columns with at least 6 non-NaN values
df. dropna (thresh= 6 ,axis= 1 )

        team points rebounds
0 A 18.0 11.0
1 B NaN NaN
2 C 19.0 10.0
3D 14.0 6.0
4E 14.0 6.0
5 F 11.0 5.0
6G 20.0 9.0
7 H NaN NaN

Обратите внимание, что столбец «помощь» был удален, поскольку этот столбец не содержал как минимум 6 значений, отличных от NaN.

Пример 4. Сохраняйте только столбцы с минимальным процентом значений, отличных от NaN.

Мы можем использовать следующий синтаксис, чтобы сохранять в DataFrame только те столбцы, которые имеют не менее 70% значений, отличных от NaN:

 #only keep columns with at least 70% non-NaN values
df. dropna (thresh= 0.7 * len (df), axis= 1 )

        team points rebounds
0 A 18.0 11.0
1 B NaN NaN
2 C 19.0 10.0
3D 14.0 6.0
4E 14.0 6.0
5 F 11.0 5.0
6G 20.0 9.0
7 H NaN NaN

Обратите внимание, что столбец «Поддержка» был удален, поскольку этот столбец не содержал как минимум 70 % значений, отличных от NaN.

Примечание . Полную документацию по функции pandas dropna() можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в pandas:

Pandas: как сбросить индекс после использования dropna()
Pandas: как использовать dropna() с определенными столбцами
Pandas: как удалить строки на основе нескольких условий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *