Inspeção de Dados com Pandas

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
  1. Dimensões do DataFrame
estoque.shape

Retorna uma tupla contendo o número de linhas e colunas.

estoque.shape

(6, 6)

  1. 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

  1. Í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])

  1. Í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)

  1. 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

  1. 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')

  1. 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])

  1. 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

  1. 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.

  1. 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])

  1. 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)

  1. Primeiras Linhas
estoque.head(n=5)

Retorna as primeiras n linhas do DataFrame, sendo n=5 o padrão.

  1. Últimas Linhas
estoque.tail(n=5)

Retorna as últimas n linhas do DataFrame, sendo n=5 o padrão.

  1. 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]]
  1. 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.

  1. 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.

Tags: pandas Python data-analysis dataframe inspecting-data

Publicado em 6-21 19:42