Python - очистка данных - PullRequest
       2

Python - очистка данных

0 голосов
/ 10 октября 2018

У меня есть фрейм данных с формой (42538, 145), в котором есть более 50 столбцов, которые имеют значения NaN для всех строк.

Example of the table here

Я бы хотелотбросить эти столбцы без указания каждого имени столбца в df.drop.

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Вы можете использовать pd.DataFrame.dropna сверх axis=1:

df = pd.DataFrame({'A': [1, 2, 3], 'B': [np.nan]*3,
                   'C': [4, 5, 6], 'D': [np.nan]*3})

df_new = df.dropna(axis=1)

print(df_new)

   A  C
0  1  4
1  2  5
2  3  6
0 голосов
/ 10 октября 2018

Возможно, вы захотите начать с df.notnull, чтобы получить местоположения всех не-NaN.

Затем вы можете использовать df.any нарезультат, с axis установленным в ноль, чтобы проверить все столбцы на not-all-NaNness.

Полученные логические ряды могут использоваться для индексации ваших столбцов: Pandas Выбор столбцов DataFrame с использованием логического значения .Есть несколько вариантов:

df = df.iloc[:, df.notnull().any(axis=0).values]

sel = df.notnull().any(axis=0)
df = df[sel.index[sel]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...