Por que você utiliza o sinal de + e transforma a lista em uma string no código abaixo ?
tabela_zona_sul = bairros.unstack().query("index in " + str(bairros_zona_sul)).droplevel(level=0, axis=1)
tabela_zona_sul
Por que você utiliza o sinal de + e transforma a lista em uma string no código abaixo ?
tabela_zona_sul = bairros.unstack().query("index in " + str(bairros_zona_sul)).droplevel(level=0, axis=1)
tabela_zona_sul
Olá pessoal, boa tarde.
Já tem 1 mês que eu lancei essa dúvida aqui no fórum e não obtive o retorno ainda.
Oii Rafael! Tudo certinho?
Peço desculpas pela demora em te dar um retorno.
Essa query é realizada para selecionar apenas os índices que estão localizados na lista bairros_zona_sul
.
Como bairros_zona_sul é uma variável que foi criada antes de fazermos a query, para conseguirmos acessar o conteúdo dessa variável, precisamos informar para o método query que aquilo se trata de uma variável. Além disso, por ser uma variável que armazena uma lista, é importante que o método query consiga percorrer cada um dos elementos dessa lista para verificar se eles existem no index.
Sendo assim, ao fazer "index in " + str(bairros_zona_sul)
a query consegue identificar que bairros_zona_sul
é uma variável e, por meio do método str
, essa query conseguirá percorrer cada um dos elementos da lista e verificar se eles estão no index. Por baixo dos panos, é como se ela fizesse essa análise da seguinte forma:
# lista com os bairros
bairros_zona_sul = ['Ipanema', 'Botafogo', 'Catete', 'Copacabana', 'Lagoa', 'Flamengo', 'Gávea', 'Glória', 'Humaitá',
'Jardim Botânico', 'Laranjeiras', 'Leme', 'Urca', 'Vidigal', 'Cosme Velho', 'São Conrado', 'Rocinha',
'Leblon']
# Exemplo de como funcionaria essa análise "por baixo dos panos"
# primeiro bairro
tabela_zona_sul = bairros.unstack().query("index in 'Ipanema'").droplevel(level=0, axis=1)
# segundo bairro
tabela_zona_sul = bairros.unstack().query("index in 'Botafogo'").droplevel(level=0, axis=1)
# terceiro bairro
tabela_zona_sul = bairros.unstack().query("index in 'Catete'").droplevel(level=0, axis=1)
O " + " portanto, é utilizado para concatenar o "index in" com cada um dos bairros e fazer a devida seleção.
Uma outra forma de fazer query utilizando listas, seria assim:
tabela_zona_sul = bairros.unstack().query("index in @bairros_zona_sul").droplevel(level=0, axis=1)
tabela_zona_sul
Esse "@" funcionaria de forma semelhante ao "str" mostrado no código anterior, permitindo que a query possa acessar cada elemento da lista e fazer a seleção dos dados.
Espero que essa explicação tenha te ajudado a entender melhor :)
Qualquer dúvida me avisa, tá bom? Estarei por aqui.
Bons estudos!