Seleção de Dados no Pandas

PandasBeginner
Pratique Agora

Introdução

Bem-vindo ao laboratório de Seleção de Dados com Pandas! Pandas é uma biblioteca poderosa para manipulação e análise de dados em Python. Uma das tarefas mais fundamentais na análise de dados é selecionar subconjuntos específicos dos seus dados. Quer você precise examinar uma única coluna, algumas linhas específicas ou uma fatia complexa do seu conjunto de dados, o Pandas oferece uma variedade de métodos flexíveis e eficientes para realizar a tarefa.

Neste laboratório, você trabalhará com um conjunto de dados de exemplo com informações de estudantes. Você aprenderá a:

  • Selecionar colunas únicas e múltiplas usando a notação de colchetes.
  • Selecionar linhas por seus rótulos usando o acessador .loc.
  • Selecionar linhas por sua posição inteira usando o acessador .iloc.
  • Combinar a seleção de linhas e colunas para extrair fatias precisas de dados.

Ao final deste laboratório, você terá uma compreensão sólida das técnicas centrais de seleção de dados no Pandas, que são essenciais para qualquer tarefa relacionada a dados.

Selecionar coluna única usando notação de colchetes

Nesta etapa, você aprenderá a maneira mais comum de selecionar uma única coluna de um DataFrame Pandas. Isso é feito usando a notação de colchetes [], semelhante à forma como você acessaria um valor em um dicionário Python.

Primeiro, precisamos carregar nossos dados do arquivo students.csv em um DataFrame. Em seguida, podemos selecionar uma coluna passando seu nome como uma string dentro dos colchetes.

Por favor, abra o arquivo main.py no explorador de arquivos à esquerda e adicione o seguinte código.

import pandas as pd

## Carrega o arquivo CSV em um DataFrame
df = pd.read_csv('students.csv')

## Seleciona a coluna 'name'
name_column = df['name']

## Imprime a coluna selecionada
print(name_column)

Agora, vamos executar o script. Abra um terminal no WebIDE e execute o seguinte comando:

python3 main.py

Você verá a saída, que é um objeto Series do Pandas contendo todos os nomes da coluna 'name'.

0      Alice
1        Bob
2    Charlie
3      David
4        Eve
Name: name, dtype: object

Como você pode ver, selecionar uma única coluna retorna uma Series, que é essencialmente um array unidimensional rotulado.

Selecionar múltiplas colunas por lista

Nesta etapa, expandiremos a técnica anterior para selecionar várias colunas de uma vez. Para fazer isso, em vez de passar uma única string, você passa uma lista de nomes de colunas dentro dos colchetes de seleção. Observe o uso de colchetes duplos [[]]: os colchetes externos são para a própria seleção, e os colchetes internos criam a lista de colunas.

Vamos modificar o arquivo main.py para selecionar as colunas name e score.

Atualize seu main.py com o seguinte código:

import pandas as pd

## Carrega o arquivo CSV em um DataFrame
df = pd.read_csv('students.csv')

## Seleciona as colunas 'name' e 'score'
subset = df[['name', 'score']]

## Imprime o DataFrame resultante do subconjunto
print(subset)

Agora, execute o script novamente a partir do seu terminal:

python3 main.py

A saída será um novo DataFrame contendo apenas as colunas que você especificou.

      name  score
0    Alice     85
1      Bob     92
2  Charlie     95
3    David     88
4      Eve     90

Ao contrário da seleção de uma única coluna que retorna uma Series, a seleção de várias colunas retorna um novo DataFrame.

Usar loc para selecionar linhas por rótulo

Nesta etapa, você aprenderá como selecionar dados com base em seu rótulo usando o acessador .loc. O indexador .loc é primariamente baseado em rótulos, o que significa que você usa os nomes (ou rótulos) do índice para fazer seleções. Por padrão, quando você carrega um CSV sem especificar uma coluna de índice, o Pandas atribui um índice inteiro padrão começando em 0. Esses inteiros agem como os rótulos para as linhas.

Vamos usar .loc para selecionar a terceira linha do nosso DataFrame, que tem o rótulo de índice 2.

Atualize seu arquivo main.py com o seguinte código:

import pandas as pd

## Carrega o arquivo CSV em um DataFrame
df = pd.read_csv('students.csv')

## Seleciona a linha com o rótulo de índice 2
charlie_data = df.loc[2]

## Imprime a linha selecionada
print(charlie_data)

Execute o script a partir do seu terminal:

python3 main.py

A saída será uma Series contendo todos os dados da linha com o rótulo de índice 2.

name        Charlie
age              21
major     Mathematics
score            95
Name: 2, dtype: object

Isso mostra os dados do aluno "Charlie". Usar .loc é uma maneira poderosa de acessar linhas quando você conhece seus rótulos.

Usar iloc para selecionar linhas por posição inteira

Nesta etapa, exploraremos outro método de seleção: .iloc. O indexador .iloc é primariamente baseado em posição inteira. Ele funciona exatamente como o fatiamento de listas em Python, onde você usa índices inteiros para acessar elementos. Isso é diferente de .loc, que usa rótulos. Embora nossos rótulos de índice padrão também sejam inteiros, a distinção se torna crucial quando você tem rótulos não inteiros.

Vamos usar .iloc para selecionar a primeira linha do DataFrame, que está na posição inteira 0.

Atualize seu arquivo main.py com o seguinte código:

import pandas as pd

## Carrega o arquivo CSV em um DataFrame
df = pd.read_csv('students.csv')

## Seleciona a primeira linha (na posição inteira 0)
first_row = df.iloc[0]

## Imprime a linha selecionada
print(first_row)

Execute o script a partir do seu terminal:

python3 main.py

A saída será uma Series contendo os dados do primeiro aluno, "Alice".

name       Alice
age           20
major    Physics
score         85
Name: 0, dtype: object

Lembre-se da diferença fundamental: .loc é para rótulos, .iloc é para posições inteiras.

Fatiar linhas e colunas com loc

Nesta etapa final, você combinará o que aprendeu para realizar seleções mais poderosas. Tanto .loc quanto .iloc podem selecionar linhas e colunas simultaneamente usando a sintaxe df.loc[seletor_linha, seletor_coluna].

Usaremos .loc para selecionar uma fatia de linhas e uma fatia de colunas. Uma característica chave de .loc é que, ao fatiar com rótulos (por exemplo, 1:3), o rótulo final (3) é inclusivo.

Vamos selecionar as linhas do rótulo de índice 1 até 3 e as colunas de name até major.

Atualize seu arquivo main.py com o seguinte código:

import pandas as pd

## Carrega o arquivo CSV em um DataFrame
df = pd.read_csv('students.csv')

## Seleciona linhas com rótulos de índice de 1 a 3 (inclusive)
## e colunas de 'name' a 'major' (inclusive)
data_slice = df.loc[1:3, 'name':'major']

## Imprime a fatia resultante
print(data_slice)

Execute o script a partir do seu terminal:

python3 main.py

A saída é um novo DataFrame que é uma "fatia" específica dos dados originais.

      name  age           major
1      Bob   22  Computer Science
2  Charlie   21       Mathematics
3    David   23       Engineering

Essa técnica é extremamente útil para isolar regiões específicas do seu conjunto de dados para análise.

Resumo

Parabéns por completar o laboratório! Você aprendeu com sucesso os métodos fundamentais para selecionar dados no Pandas.

Neste laboratório, você praticou:

  • Selecionar uma única coluna usando a notação de colchetes df['coluna'], que retorna uma Series.
  • Selecionar múltiplas colunas usando uma lista na notação de colchetes df[['col1', 'col2']], que retorna um DataFrame.
  • Selecionar linhas pelo seu rótulo com .loc, que é poderoso para indexação baseada em rótulos.
  • Selecionar linhas por sua posição inteira com .iloc, que segue as regras padrão de fatiamento do Python.
  • Combinar seletores de linha e coluna com .loc para extrair fatias específicas e bidimensionais dos seus dados.

Dominar essas técnicas de seleção é um primeiro passo crítico para se tornar proficiente com o Pandas para análise e manipulação de dados. Agora você pode acessar com confiança qualquer parte do seu DataFrame para inspecioná-lo, analisá-lo ou modificá-lo.