Ошибка KeyError в функции drop

df.columns
>>> Index(['RowNumber', 'CustomerId', 'Surname', 'CreditScore', 'Geography',
       'Gender', 'Age', 'Tenure', 'Balance', 'NumOfProducts', 'HasCrCard',
       'IsActiveMember', 'EstimatedSalary', 'Exited'],
      dtype='object')

df = df.drop(['RowNumber', 'CustomerId', 'Surname', 'CreditScore'], axis=1, inplace=True)
df>>>KeyError: "['RowNumber' 'CustomerId' 'Surname' 'CreditScore'] not found in axis"

Ответы (1 шт):

Автор решения: MaxU

если вы используете параметр inplace=True, то замена происходит в самом фрейме и функция возвращает None:

In [96]: df = pd.read_csv(r"/tmp/Churn_Modelling.csv")

In [97]: df.columns
Out[97]: 
Index(['RowNumber', 'CustomerId', 'Surname', 'CreditScore', 'Geography',
       'Gender', 'Age', 'Tenure', 'Balance', 'NumOfProducts', 'HasCrCard',
       'IsActiveMember', 'EstimatedSalary', 'Exited'],
      dtype='object')

In [98]: df.drop(['RowNumber', 'CustomerId', 'Surname', 'CreditScore'], axis=1, inplace=True)

In [99]: df.columns
Out[99]: 
Index(['Geography', 'Gender', 'Age', 'Tenure', 'Balance', 'NumOfProducts',
       'HasCrCard', 'IsActiveMember', 'EstimatedSalary', 'Exited'],
      dtype='object')

поэтому надо делать либо так:

df.drop(['RowNumber', 'CustomerId', 'Surname', 'CreditScore'], axis=1, inplace=True)

либо так:

df = df.drop(['RowNumber', 'CustomerId', 'Surname', 'CreditScore'], axis=1)

лично я предпочитаю более явный стиль:

df = df.drop(columns=['RowNumber', 'CustomerId', 'Surname', 'CreditScore'])
→ Ссылка