Qual é a diferença entre loc e iloc em Pandas?
Escreva isso como uma das perguntas mais comuns que você ouvirá dos novatos em Python e dos aspirantes à ciência de dados.. Há uma grande probabilidade de você encontrar essa pergunta em uma entrevista com um cientista ou analista de dados.
Honestamente, até eu fiquei inicialmente confuso quando comecei a aprender Python alguns anos atrás. Mas não se preocupe! loc vs iloc em Pandas pode ser uma questão complicada, mas a resposta é muito simples, quando você pega o jeito.
E é isso que pretendo ajudá-lo a alcançar neste artigo.. Vamos confiar nos pandas, a biblioteca python mais popular, para responder à pergunta loc vs. iloc.
A biblioteca do Pandas contém vários métodos para filtragem de dados conveniente: loc y iloc entre eles. Com estes, podemos fazer praticamente qualquer tarefa de seleção de dados nos quadros de dados do Pandas.
Confira nossos dois cursos populares de Python se você for novo na programação de Python. Eles são gratuitos e são um ótimo primeiro passo em sua jornada de aprendizado de máquina.:
Nós vamos, Vamos mergulhar!
loc contra iloc em Pandas
Então, O que é loc e iloc em primeiro lugar? Precisamos responder a esta pergunta antes de entendermos onde usar cada uma dessas funções do Pandas em Python.
loc em pandas
Lugar, colocar é baseado em tag, o que significa que temos que especificar o nome das linhas e colunas que precisamos filtrar.
Por exemplo, digamos que buscamos las filas cuyo índiceo "Índice" É uma ferramenta fundamental em livros e documentos, que permite localizar rapidamente as informações desejadas. Geralmente, é apresentado no início de um trabalho e organiza os conteúdos de forma hierárquica, incluindo capítulos e seções. Sua correta preparação facilita a navegação e melhora a compreensão do material, tornando-se um recurso essencial para estudantes e profissionais de várias áreas.... isto é 1, 2 o 100. Não vamos conseguir o primeiro, a segunda ou centésima linha aqui. Em vez de, obteremos os resultados apenas se o nome de qualquer índice for 1, 2 o 100.
Então, podemos filtrar os dados usando a função loc no Pandas mesmo se os índices não forem inteiros em nosso conjunto de dados.
iloc em pandas
Por outro lado, iloc é baseado em índices inteiros. Então aqui, temos que especificar linhas e colunas por seus índices inteiros.
Digamos que procuramos as linhas com índice 1, 2 o 100. Retornará o primeiro, segunda e centésima linha, independentemente do nome ou rótulos que temos no índice em nosso conjunto de dados.
Veremos vários exemplos neste artigo sobre como usar Lugar, colocar e iloc para o processo de seleção e atualização de dados em Python.
loc e iloc em ação (usando Pandas em Python)
É hora de ligar seu notebook Jupyter! Vamos mergulhar direto no código e entender como e onde usar loc versus iloc em Python.
Crie um conjunto de dados de amostra
Primeiro, precisamos de um conjunto de dados para aplicar loc e iloc, verdade? Vamos fazer isso.
Criaremos um exemplo de conjunto de dados do aluno consistindo em 5 colunas: era, seção, Cidade, sexo e cor favorita. Este conjunto de dados conterá variáveis numéricas e categóricas:
Encontre todas as linhas com base em qualquer condição em uma coluna
Uma coisa que quase sempre usamos ao explorar um conjunto de dados: filtrar os dados com base em uma determinada condição. Por exemplo, podemos precisar encontrar todas as linhas em nosso conjunto de dados onde a idade é superior a x anos, ou a cidade é delhi, e assim por diante.
Podemos resolver os tipos de consulta com uma linha simples de código usando pandas.DataFrame.loc[]. Precisamos apenas passar a condição dentro da instrução loc.
Vamos tentar encontrar as linhas onde o valor de idade é maior que ou igual a 15:
Experimente o código acima na janela de codificação ao vivo abaixo!!
Encontre todas as linhas com mais de uma condição
de forma similar, também podemos usar várias condições para filtrar nossos dados, como encontrar todas as linhas onde a idade é maior ou igual a 12 e o gênero também é masculino:
Selecione um intervalo de linhas usando loc
Usando loc, nós também podemos cortar o Pandas quadro de dados em uma variedade de índices. Se os índices não forem ordenados, irá seleccionar apenas as linhas com os índices 1 e 3 (como você verá no exemplo a seguir). E se os índices não forem números, então não podemos dividir nosso quadro de dados.
Nesse caso, precisamos usar o iloc função para cortar nosso quadro de dados Pandas.
Selecione apenas as colunas obrigatórias com uma condição
Também podemos selecionar as colunas que são necessárias das linhas que satisfazem nossa condição.
Por exemplo, se nosso conjunto de dados contém centenas de colunas e queremos ver apenas algumas delas, podemos adicionar uma lista de colunas após a condição dentro da instrução loc:
Atualize os valores de uma determinada coluna nas linhas selecionadas
Este é um dos meus truques favoritos do Python Pandas!!
Muitas vezes temos que atualizar os valores em nosso conjunto de dados com base em uma determinada condição. Por exemplo, se os valores em idade são maiores que iguais a 12, então queremos atualizar os valores da seção da coluna para serem “M”.
Podemos fazer isso executando um em laço também, mas se nosso conjunto de dados for grande, levaria uma eternidade para completar a tarefa. Usando loc em Pandas, podemos fazer isso em segundos, Mesmo em conjuntos de dados maiores!
Precisamos apenas especificar a condição seguida pela coluna de destino e, em seguida, atribuir o valor com o qual queremos atualizar:
Atualize os valores de várias colunas nas linhas selecionadas
Se quisermos atualizar várias colunas com valores diferentes, podemos usar a seguinte sintaxe.
Neste exemplo, se o valor da coluna idade é maior que 20, então a função loc atualizará os valores na coluna seção com “S“E os valores da coluna Cidade com Pune:
Selecione linhas com índices usando iloc
Quando usamos iloc, precisamos especificar as linhas e colunas por seu índice inteiro. Se quisermos selecionar apenas a primeira e a terceira linha, nós simplesmente precisamos listar isso na instrução iloc com nosso quadro de dados:
Selecione linhas com índices específicos e colunas específicas
Anteriormente, selecionamos algumas colunas do conjunto de dados usando a função loc. Podemos fazer isso usando a função iloc. Observe que precisamos fornecer o número do índice da coluna em vez do nome da coluna:
Selecione um intervalo de linhas usando iloc
Também podemos cortar um quadro de dados usando iloc. Precisamos fornecer o Índice inicial e end_index + 1 cortar um certo quadro de dados. Se os índices não forem os números ordenados, então ele irá selecionar o índice_inicial número da linha até end_index:
Selecione um intervalo de linhas e colunas usando iloc
Corte o quadro de dados em linhas e colunas. No exemplo a seguir, nós selecionamos as linhas de (1-2) e as colunas de (2-3).
loc e iloc são duas funções superúteis no Pandas com as quais passei a contar muito. Tenho certeza de que você também os usará em sua jornada de aprendizado de máquina. E se for um usuário R que muda para Python, Tenho certeza que você achará loc e iloc bastante intuitivos.
Eu recomendo fortemente tomar nosso Python para ciência de dados e Pandas para análise de dados em cursos Python, se você é novo na programação Python. Eles são gratuitos e são um ótimo primeiro passo em sua jornada de aprendizado de máquina.