Как удалить столбцы с определенным количество пропусков в 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")