Как удалить те столбцы, которые существуют во фрейме данных?

#python #pandas

#python #pandas

Вопрос:

У меня есть следующая строка кода, которая используется для удаления некоторых столбцов во фрейме данных. Может случиться так, что некоторые из этих столбцов не существуют во фрейме данных.

 df =

col1  col2  col3
asa   132   4534
dfd   24    4252


cols = ["col1", "colB"] 
df.drop(cols, inplace=True, axis=1)
  

Как я могу пропустить столбцы, которые не существуют?

Ожидаемый результат:

 df =

col2  col3
132   4534
24    4252
  

Ответ №1:

Проверьте с помощью errors='ignore'

 cols = ["col1", "colB"] 
df.drop(cols, axis=1, errors='ignore', inplace=True)
df
Out[167]: 
   col2  col3
0   132  4534
1    24  4252
  

Комментарии:

1. Как вы копируете свои выходные данные из jupyter notebook подобным образом?

2. но вы просто выделяете это с помощью мыши и копируете-вставляете? У меня это не работает. @Wen-Ben

3. @crytting это графический интерфейс для программирования, я использую pycharm, а не jupyter

Ответ №2:

 import pandas as pd

col1 = ['asa', 'dfd']
col2 = [132, 24]
col3 = [4523, 4252]
cols = {'col1':col1,'col2':col2, 'col3':col3}

df = pd.DataFrame(cols)

drop_cols = ['col1', 'colB']

for col in drop_cols:
    if col in df.columns.values:
        df.drop(col, inplace = True, axis = 1)

df
  

возвращает то, что вы ищете.

     col2     col3
0   132      4523
1   24       4252