Как удалить столбцы с определенным количество пропусков в DataFrame?

Есть следующий датасет:

Col1    Col2    Col3    Col4    Col5    Col6
7   9   9   7       4
6   7   3   5   9   10
6   5   4   3       2
8   3   9   6   4   8
6   10  6   8       5
10      5   2   7   5
4           4   4   7
4           4   8   10
10  5   4   3   7   10
5   8   4   4   6   7

Необходимо оставить только те столбцы, в которых % пропусков (NaN) не превышает 20%. Соответственно необходимо получить следующее:

Col1    Col3    Col4    Col6
7   9   7   4
6   3   5   10
6   4   3   2
8   9   6   8
6   6   8   5
10  5   2   5
4       4   7
4       4   10
10  4   3   10
5   4   4   7


Ответы (1 шт):

Автор решения: MaxU

Воспользуйтесь методом DataFrame.dropna(..., threshold=<>):

res = df.dropna(thresh=int(len(df) * .8), axis=1)

результат:

In [55]: res
Out[55]:
   Col1  Col3  Col4  Col6
0     7   9.0     7     4
1     6   3.0     5    10
2     6   4.0     3     2
3     8   9.0     6     8
4     6   6.0     8     5
5    10   5.0     2     5
6     4   NaN     4     7
7     4   NaN     4    10
8    10   4.0     3    10
9     5   4.0     4     7

NOTE: учтите, что df.dropna() удаляет только NaN, а не пробелы. Если у вас в столбце пробелы, то такой столбец нужно будет сначала преобразовать к числовому типу данных:

df["col_name"] = pd.to_numrtic(df["col_name"], errors="coerce")
→ Ссылка