3
respostas

problema com agrupamento

Estou tentando fazer o agrupamento com todos bairros, porém aparece o seguinte erro.

selecao=dados['Bairro']
 dados = dados[selecao]
KeyError                                  Traceback (most recent call last)
<ipython-input-23-c9bd722b0cd8> in <module>
----> 1 dados = dados[selecao]

~/.pyenv/versions/3.7.3/lib/python3.7/site-packages/pandas/core/frame.py in __getitem__(self, key)
   2984             if is_iterator(key):
   2985                 key = list(key)
-> 2986             indexer = self.loc._convert_to_indexer(key, axis=1, raise_missing=True)
   2987 
   2988         # take() does not accept boolean indexers

~/.pyenv/versions/3.7.3/lib/python3.7/site-packages/pandas/core/indexing.py in _convert_to_indexer(self, obj, axis, is_setter, raise_missing)
   1283                 # When setting, missing keys are not allowed, even with .loc:
   1284                 kwargs = {"raise_missing": True if is_setter else raise_missing}
-> 1285                 return self._get_listlike_indexer(obj, axis, **kwargs)[1]
   1286         else:
   1287             try:

~/.pyenv/versions/3.7.3/lib/python3.7/site-packages/pandas/core/indexing.py in _get_listlike_indexer(self, key, axis, raise_missing)
   1090 
   1091         self._validate_read_indexer(
-> 1092             keyarr, indexer, o._get_axis_number(axis), raise_missing=raise_missing
   1093         )
   1094         return keyarr, indexer

~/.pyenv/versions/3.7.3/lib/python3.7/site-packages/pandas/core/indexing.py in _validate_read_indexer(self, key, indexer, axis, raise_missing)
   1175                 raise KeyError(
   1176                     "None of [{key}] are in the [{axis}]".format(
-> 1177                         key=key, axis=self.obj._get_axis_name(axis)
   1178                     )
   1179                 )

KeyError: "None of [Index(['Copacabana', 'Jardim Botânico', 'Centro', 'Higienópolis', 'Cachambi',\n       'Barra da Tijuca', 'Ramos', 'Grajaú', 'Lins de Vasconcelos',\n       'Copacabana',\n       ...\n       'Leblon', 'Ipanema', 'Tijuca', 'Vila Valqueire', 'Barra da Tijuca',\n       'Méier', 'Centro', 'Jacarepaguá', 'São Francisco Xavier', 'Leblon'],\n      dtype='object', length=21826)] are in the [columns]"
3 respostas

Olá Marilivia,

Seria esse código da aula que você quer reproduzir?

bairros = ['Barra da Tijuca', 'Copacabana', 'Ipanema', 'Leblon', 'Botafogo', 'Flamengo', 'Tijuca']
selecao = dados['Bairro'].isin(bairros)
dados = dados[selecao]

Ou é alguma variação disso?

seria uma variação para fazer um agrupamento de todos os bairros.

Nesse caso você não precisa fazer nenhuma seleção, você pode remover essa parte do seu código e simplesmente criar os grupos:

grupo_bairro = dados.groupby('Bairro')

Qualquer dúvida pode perguntar.