#python #pandas #dataframe
Алгоритм удаления по заданию следующий: найдите все такие столбцы (метод .isna() + подвыборка с условием) определите их названия (поймите как выцепить названия и сохраните их в массив, т.е. по цепочке примените методы .index, .tolist() или .values) "дропните их" (используйте метод .drop (имена столбцов)) результат сохраните в новой табличке (например, data_1), исходную менять не нужно Сделала по-другому: cols_to_delete = df2.columns[df2.isna().sum() > 2] df2.drop(cols_to_delete, axis = 1, inplace = True) Что мне непонятно: как сделать задание по вышеуказанному алгоритму #1 - #4. df = pd.DataFrame({ 'col1': [23, 54, pd.np.nan, 87], 'col2': [45, 39, 45, 32], 'col3': [pd.np.nan, pd.np.nan, 76, pd.np.nan,] })
Ответы
Ответ 1
Исходный DF: In [92]: df Out[92]: col1 col2 col3 0 23.0 45 NaN 1 54.0 39 NaN 2 NaN 45 76.0 3 87.0 32 NaN Решение 1: In [93]: thresh = 2 In [94]: new = df.loc[:, df.isna().sum().le(thresh)] Решение 2: In [96]: new = df.drop(columns=df.columns[df.isna().sum() > thresh]) Результат: In [95]: new Out[95]: col1 col2 0 23.0 45 1 54.0 39 2 NaN 45 3 87.0 32
Комментариев нет:
Отправить комментарий