Inspeção de Dados com Pandas
Vamos explorar as principais funções para visualizar e inspecionar DataFrames na biblioteca Pandas.
import pandas as pd
import numpy as np
estoque = pd.DataFrame({
"codigo": [2001, 2002, 2003, 2004, 2005, 2006],
"data_entrada": pd.date_range('20240301', periods=6),
"produto": [' Notebook', 'Desktop', 'Monitor ', 'Teclado', 'mouse', 'IMPRESSORA '],
"quantidade": [15, 28, 42, 65, 90, 12],
"setor": ['TI-01', 'TI-02', 'TI-01', 'TI-03', 'TI-02', 'TI-01'],
"valor_unitario": [3500.00, 4200.00, 800.00, 150.00, 80.00, 1200.00]
}, columns=['codigo', 'data_entrada', 'produto', 'quantidade', 'setor', 'valor_unitario'])
estoque
| codigo | data_entrada | produto | quantidade | setor | valor_unitario | |
|---|---|---|---|---|---|---|
| 0 | 2001 | 2024-03-01 | Notebook | 15 | TI-01 | 3500.00 |
| 1 | 2002 | 2024-03-02 | Desktop | 28 | TI-02 | 4200.00 |
| 2 | 2003 | 2024-03-03 | Monitor | 42 | TI-01 | 800.00 |
| 3 | 2004 | 2024-03-04 | Teclado | 65 | TI-03 | 150.00 |
| 4 | 2005 | 2024-03-05 | mouse | 90 | TI-02 | 80.00 |
| 5 | 2006 | 2024-03-06 | IMPRESSORA | 12 | TI-01 | 1200.00 |
- Dimensões do DataFrame
estoque.shape
Retorna uma tupla contendo o número de linhas e colunas.
estoque.shape
(6, 6)
- Informações Gerais da Tabela
estoque.info()
Fornece detalhes sobre o DataFrame, incluindo tipos de dados, quantidade de valores não nulos e uso de memória.
estoque.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 6 entries, 0 to 5 Data columns (total 6 columns): # Column Non-Null Count Dtype
0 codigo 6 non-null int64 1 data_entrada 6 non-null datetime64[ns] 2 produto 6 non-null object 3 quantidade 6 non-null int64 4 setor 6 non-null object 5 valor_unitario 6 non-null float64 dtypes: datetime64ns, float64(1), int64(2), object(3) memory usage: 520.0+ bytes
- Índice das Linhas
estoque.index
estoque.index.values
estoque.index retorna um objeto Index representando o índice das linhas. estoque.index.values retorna um array NumPy contendo os valores do índice.
estoque.index
RangeIndex(start=0, stop=6, step=1)
estoque.index.values
array([0, 1, 2, 3, 4, 5])
- Índice das Colunas
estoque.columns
estoque.columns.values
estoque.columns retorna um objeto Index representando o índice das colunas. estoque.columns.values retorna um array NumPy contendo os valores do índice das colunas.
estoque.columns.values
array(['codigo', 'data_entrada', 'produto', 'quantidade', 'seter', 'valor_unitario'], dtype=object)
- Tipos de Dados de Cada Coluna
estoque.dtypes
Retorna uma Series onde o índice é o nome da coluna e o valor é o tipo de dado de cada coluna.
estoque.dtypes
codigo int64 data_entrada datetime64[ns] produto object quantidade int64 setor object valor_unitario float64 dtype: object
- Tipo de Dados de Uma Coluna Específica
estoque['nome_coluna'].dtype
Retorna o tipo de dado da coluna especificada.
estoque['codigo'].dtype
dtype('int64')
- Valores de Uma Coluna Específica
estoque['nome_coluna'].values
estoque['nome_coluna'].to_numpy()
Retorna os valores da coluna especificada como um array NumPy.
estoque['codigo'].values
array([2001, 2002, 2003, 2004, 2005, 2006])
- Verificação de Valores Nulos
estoque.isnull()
estoque.isnull().sum()
estoque.isnull() retorna um DataFrame booleano indicando se cada elemento é nulo. estoque.isnull().sum() retorna uma Series mostrando a quantidade de valores nulos por coluna.
estoque.isnull()
| codigo | data_entrada | produto | quantidade | setor | valor_unitario | |
|---|---|---|---|---|---|---|
| 0 | False | False | False | False | False | False |
| 1 | False | False | False | False | False | False |
| 2 | False | False | False | False | False | False |
| 3 | False | False | False | False | False | False |
| 4 | False | False | False | False | False | False |
| 5 | False | False | False | False | False | False |
estoque.isnull().sum()
codigo 0 data_entrada 0 produto 0 quantidade 0 setor 0 valor_unitario 0 dtype: int64
- Verificação de Valores Nulos em Uma Coluna
estoque['nome_coluna'].isnull()
estoque['nome_coluna'].isnull().sum()
Retorna uma Series booleana e a quantidade de valores nulos para a coluna especificada.
- Valores Únicos de Uma Coluna
estoque['nome_coluna'].unique()
Retorna os valores únicos da coluna especificada como um array NumPy.
estoque['codigo'].unique()
array([2001, 2002, 2003, 2004, 2005, 2006])
- Valores do DataFrame
estoque.values
estoque.to_numpy()
Retorna os valores do DataFrame como um array NumPy.
estoque.values
array([[2001, Timestamp('2024-03-01 00:00:00'), ' Notebook', 15, 'TI-01', 3500.0], [2002, Timestamp('2024-03-02 00:00:00'), 'Desktop', 28, 'TI-02', 4200.0], [2003, Timestamp('2024-03-03 00:00:00'), 'Monitor ', 42, 'TI-01', 800.0], [2004, Timestamp('2024-03-04 00:00:00'), 'Teclado', 65, 'TI-03', 150.0], [2005, Timestamp('2024-03-05 00:00:00'), 'mouse', 90, 'TI-02', 80.0], [2006, Timestamp('2024-03-06 00:00:00'), 'IMPRESSORA ', 12, 'TI-01', 1200.0]], dtype=object)
- Primeiras Linhas
estoque.head(n=5)
Retorna as primeiras n linhas do DataFrame, sendo n=5 o padrão.
- Últimas Linhas
estoque.tail(n=5)
Retorna as últimas n linhas do DataFrame, sendo n=5 o padrão.
- Loaclização de Dados
14.1. acesso.loc
estoque.loc[índice_linha, índice_coluna]
- Retorna valores de linhas e colunas específicas
- O índice de linha pode ser um rótulo ou array booleano
- O índice de coluna pode ser um rótulo ou lista
- Suporta sintaxe de fatiamento para seleção de intervalos
- Exemplo:
estoque.loc['rótulo_linha', 'rótulo_coluna']retorna o valor de uma célula - Uso de array booleano:
estoque[estoque['coluna'] > 0, :]retorna linhas onde o valor da coluna é maior que zero - Seleção de colunas com lista:
estoque[:, ['col1', 'col2']] - Combinação de listas:
estoque[['linha1', 'linha3'], ['col1', 'col2']] - Fatiamento combinado com listas:
estoque['linha1':'linha5', ['col1', 'col3']]
14.2. acesso.iloc
estoque.iloc[posição_linha, posição_coluna]
- Retorna valores de posições específicas usando índices inteiros
- Ambos os índices devem ser inteiros
- Suporta sintaxe de fatiamento
- Exemplo:
estoque.iloc[0:5, 0:3]retorna as primeiras 5 linhas e 3 colunas - Array booleano para linhas:
estoque.iloc[[True, False, True], :] - Lista de posições para colunas:
estoque.iloc[:, [0, 2]] - Combinação de listas inteiras:
estoque.iloc[[0, 2], [1, 3]] - Combinação de fatiamento com listas:
estoque.iloc[0:5, [0, 2]] - Combinação de arrays booleanos com listas:
estoque.iloc[[True, False, True], [0, 2]] - Combinação de fatiamento com arrays booleanos:
estoque.iloc[0:5, [True, False, True]] - Combinação de arrays booleanos com fatiamento:
estoque.iloc[[True, False, True], 0:3]
14.3. acesso.at
estoque.at[rótulo_linha, rótulo_coluna]
- Retorna um único valor para o par de rótulos especificado
- Exemplo:
estoque.at['rótulo_linha', 'rótulo_coluna'] - Ideal para acesso rápido a elementos únicos
- Suporta listas de rótulos:
estoque.at[['linha1', 'linha3'], ['col1', 'col2']] - Combinação de fatiamento com listas:
estoque.at['linha1':'linha5', ['col1', 'col3']] - Array booleano com listas:
estoque.at[estoque['coluna'] > 0, ['col1', 'col3']]
14.4. acesso.iat
estoque.iat[posição_linha, posição_coluna]
- Retorna um único valor usando índices inteiros
- Exemplo:
estoque.iat[0, 1]retorna o valor na primiera linha, segunda coluna - Ideal para acesso rápido a elementos únicos
- Suporta listas de índices inteiros:
estoque.iat[[0, 2], [1, 3]]
- Filtragem de Linhas por Condição
estoque[estoque['coluna'] > valor]
Retorna as linhas que atendem à condição especificada usando operadores de comparação ou operadores lógicos.
estoque[estoque['coluna'] == 'valor']
Retorna as linhas onde a coluna especificada possui o valor exato.
estoque[estoque['coluna'].str.contains('texto')]
Retorna as linhas onde a coluna especificada contém o texto informado.
- Seleção de Colunas Específicas
estoque[['coluna1', 'coluna2']]
Retorna as colunas especificadas como um novo DataFrame.
estoque.loc[:, ['coluna1', 'coluna2']]
Retorna as colunas especificadas como um novo DataFrame usando loc.
estoque.iloc[:, [0, 2]]
Retorna as colunas nas posições especificadas como um novo DataFrame usando iloc.