Pandas: как удалить столбцы со значениями nan
Вы можете использовать следующие методы для удаления столбцов из DataFrame pandas со значениями NaN:
Способ 1: удалить столбцы с любым значением NaN
df = df. dropna (axis= 1 )
Способ 2. Удаление столбцов со всеми значениями NaN
df = df. dropna (axis= 1 ,how=' all ')
Способ 3. Удаление столбцов с минимальным количеством значений NaN
df = df. dropna (axis= 1 ,thresh= 2 )
В следующих примерах показано, как использовать каждый метод на практике со следующим DataFrame pandas:
import pandas as pd import numpy as np #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'B'], ' position ': [np.nan, 'G', 'F', 'F', 'C', 'G'], ' points ': [11, 28, 10, 26, 6, 25], ' rebounds ': [np.nan, np.nan, np.nan, np.nan, np.nan, np.nan]}) #view DataFrame print (df) team position points rebounds 0 A NaN 11 NaN 1 AG 28 NaN 2 AF 10 NaN 3 BF 26 NaN 4 BC 6 NaN 5 BG 25 NaN
Пример 1. Удаление столбцов со значениями NaN
Следующий код показывает, как удалить столбцы со значениями NaN:
#drop columns with any NaN values df = df. dropna (axis= 1 ) #view updated DataFrame print (df) team points 0 to 11 1 to 28 2 to 10 3 B 26 4 B 6 5 B 25
Обратите внимание, что столбцы позиции и подборов были удалены, поскольку они оба имели хотя бы одно значение NaN.
Пример 2. Удаление столбцов со всеми значениями NaN
Следующий код показывает, как удалить столбцы со всеми значениями NaN:
#drop columns with all NaN values df = df. dropna (axis= 1 ,how=' all ') #view updated DataFrame print (df) team position points 0 A NaN 11 1 AG 28 2 AF10 3 BF 26 4 BC 6 5 BG 25
Обратите внимание, что столбец отказов был удален, поскольку это был единственный столбец со всеми значениями NaN.
Пример 3. Удаление столбцов с минимальным количеством значений NaN
Следующий код показывает, как удалить столбцы с двумя или более значениями NaN:
#drop columns with at least two NaN values df = df. dropna (axis= 1 ,thresh= 2 ) #view updated DataFrame print (df) team position points 0 A NaN 11 1 AG 28 2 AF10 3 BF 26 4 BC 6 5 BG 25
Обратите внимание, что столбец отказов был удален, поскольку это был единственный столбец с как минимум двумя значениями NaN.
Примечание . Полную документацию функции dropna() в pandas вы можете найти здесь .
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные задачи в pandas:
Как удалить первый столбец в Pandas
Как удалить повторяющиеся столбцы в Pandas
Как удалить все столбцы, кроме некоторых, в Pandas