Удалить столбец из pandas DataFrame, используя метод drop () - PullRequest
0 голосов
/ 24 июня 2018

Я посмотрел ответы на вопрос «Удалить столбец из pandas DataFrame, используя del df.column_name».Там я видел людей, предпочитающих метод drop () вместо del df.column, потому что вы можете удалить несколько столбцов. В любом случае, когда я использовал метод drop (), у меня возникали проблемы и появлялись сообщения об ошибках. Ниже приведен код, который я написал:

import numpy as np
import pandas as pd 
#install xlrd
!pip install xlrd
print('xlrd installed!') 
df_can=pd.read_excel('https://ibm.box.com/shared/static /lw190pt9zpy5bd1ptyg2aw15awomz9pu.xlsx',
                   sheet_name='Canada by Citizenship',skiprows=range(20),
                   skipfooter=2
                  )

print('Data downloaded and read into dataframe')
df_can.head(10)
print(df_can.shape)
#Drop the columns (axis=1) which are not useful to us for visualization.
cols=['Type','Coverage','AREA','REG','DEV']
df_can.drop(cols,axis=1,inplace=True)
df_can.head()

Когда я запускаю код, я получаю следующее сообщение об ошибке:


KeyError                                  Traceback (most recent call  last)
<ipython-input-19-f9b9a9fefc0e> in <module>()
  1 #Drop the columns (axis=1) which are not useful to us for visualization.
  2 cols=['Type','Coverage','AREA','REG','DEV']
----> 3 df_can.drop(cols,axis=1,inplace=True)
  4 df_can.head()

~/anaconda3/lib/python3.6/site-packages/pandas/core/frame.py in drop(self, labels, axis, index, columns, level, inplace, errors)
 3692                                            index=index,   columns=columns,
 3693                                            level=level,  inplace=inplace,
-> 3694                                            errors=errors)
 3695 
 3696     @rewrite_axis_style_signature('mapper', [('copy', True),

~/anaconda3/lib/python3.6/site-packages/pandas/core/generic.py in  drop(self, labels, axis, index, columns, level, inplace, errors)
3106         for axis, labels in axes.items():
3107             if labels is not None:
-> 3108                 obj = obj._drop_axis(labels, axis, level=level, errors=errors)
3109 
3110         if inplace:

~/anaconda3/lib/python3.6/site-packages/pandas/core/generic.py in _drop_axis(self, labels, axis, level, errors)
3138                 new_axis = axis.drop(labels, level=level, errors=errors)
3139             else:
-> 3140                 new_axis = axis.drop(labels, errors=errors)
3141             dropped = self.reindex(**{axis_name: new_axis})
3142             try:

~/anaconda3/lib/python3.6/site-packages/pandas/core/indexes/base.py in drop(self, labels, errors)
4385             if errors != 'ignore':
4386                 raise KeyError(
-> 4387                     'labels %s not contained in axis' % labels[mask])
4388             indexer = indexer[~mask]
4389         return self.delete(indexer)

KeyError: "labels ['Type' 'Coverage' 'AREA' 'REG' 'DEV'] not contained in axis"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...