Guia de acesso rápido ao Pandas

por: Ricardo Dortas Schönhofen

ACESSO RÁPIDO AO PANDAS

A biblioteca Pandas é uma das ferramentas preferidas para análise e manipulação de dados. As estruturas de dados são rápidas e flexíveis, tornando fácil a análise dos dados.

Ainda assim, você pode precisar de alguma ajuda com referências práticas e rapidamente acessíveis. Por isso, traduzimos um guia de acesso rápido dos comandos Python, voltado para iniciantes.

Aqui o link para versão para impressão do guia: Acesso Rápido ao Pandas

Esse guia irá falar de variáveis e tipos de dados, strings, listas e também um pouco de numpy.

Biblioteca

#Importa a biblioteca
>>> import pandas as pd

 


Estruturas de dados no Pandas

Séries

Uma matriz uni-dimensional capaz de conter qualquer tipo de dado

>>> s = pd.Series([3, -5, 7, 4], index=[‘a’, ‘b’, ‘c’, ‘d’])

Frame de dados (Data frame)

Uma estrutura de dados bi-dimensional com colunas de diferentes tipos

>>> data = {‘País’: [‘Portugal’, ‘Peru’, ‘Chile’], ‘Capital’: [‘Lisboa’, ‘Lima’, ‘Santiago’], ‘População’: [751000, 1120000, 695000]}
>>> df = pd.DataFrame(data, columns=[‘País’, ‘Capital’, ‘População’])


Pedindo ajuda

>>> help(pd.Series.loc)

Selecionando

Recuperar elementos

#Retorna um elemento
>>>s[‘b’] 
-5 

#Retorna um subconjunto de um DataFrame
>>>df[1:]
     País     Capital População 
1    Portugal Lisboa  751000 
2    Peru     Lima    1120000

Seleção, indexação booleana & definição

#Por posição 
#Seleciona um único valor por linha & coluna 
>>>df.iloc[0][0] 
‘Portugal’ 
>>>df.at([0], [0]) 
‘Portugal’ 

#Por rótulo 
#Seleciona um único valor por rótulo de linha & coluna 
>>>df.iloc[0][‘País’] 
‘Portugal’ 
>>>df.at([0], [‘País’]) 
‘Portugal’ 

#Por rótulo/posição 
#Seleciona uma única linha de um subconjunto de linhas 
>>>df.ix[2] 
País      Chile 
Capital   Santiago 
População 695000 
#Seleciona uma única coluna de um subconjunto de colunas 
>>>df.ix[:, ‘Capital’] 
0 Lisboa 
1 Lima 
2 Santiago 
#Seleciona linhas e colunas 
>>>df.ix[1, ‘Capital’] 
'Lima' 

#Indexação booleana 
#Série s, valor não é > 1 
>>>s[~(s > 1)] 
#s, valor é < -1 ou >= 6 
>>>s[(s < -1) | (s >= 6)] 
#Filtro para ajustar o DataFrame 
>>>df[df[‘População’] > 1000000] 

#Definição 
#Define índice a de s = 6 
>>>s[‘a’] = 6

I/O

Ler e escrever em CSV

>>> pd.read_csv(‘arquivo.csv’, header=None, nrows=5) 
>>> pd.to_csv(‘meudf.csv’)

Ler e escrever em Excel

>>> pd.read_excel(‘arquivo.xls’, sheetname=‘Pasta1’) 
>>> pd.to_excel(‘meudf.csv’, sheetname=‘Pasta1’)

Ler múltiplas pastas de um mesmo arquivo

>>> xlsx = pd.ExcelFile(arquivo.xls’) 
>>> df = pd.read_excel(xlsx, ‘Pasta1’)

Ler e escrever query SQL ou tabela de dados

>>> from sqlalchemy import create_engine 
>>> engine = create_engine(‘sqlite:///:memory:’) 
>>> pd.read_sql(“SELECT * FROM m_tabela;”, engine) 
>>> pd.read_sql_table(‘m_tabela’, engine) 
>>> pd.read_sql_query(“SELECT * FROM m_tabela;”, engine)
#read_sql() é um wrapper conveniente ao redor de read_sql_table() e de read_sql_query() 
>>> pd.to_sql(meuDf’, engine)

 


Deletando

#Deleta valores das linhas 
>>> s.drop([‘a’, ‘c’]) 

#Deleta valores das colunas 
>>> s.drop(‘País’, axis=1)

Ordem e classificação

#Ordena por linha ou coluna 
>>> df.sort_index(by=’País’) 

#Ordena por valores 
>>> s.order() 

#Classifica as entradas
 >>> df.rank()

 


Recuperando informações de séries e dataframes

Informações básicas

#(linhas, colunas) 
>>> df.shape 

#Descreve o índice 
>>> df.index 

#Descreve as colunas 
>>> df.columns 

#Info sobre o dataframe 
>>> df.info() 

#Número de valores não-NA 
>>> df.count()

Resumos

#Soma de valores 
>>> df.sum() 

#Soma acumulada 
>>> df.cumsum() 

#Valores max e min 
>>>df.min/df.max() 

#Sumário estatístico 
>>>df.describe() 

#Média dos valores 
>>>df.mean() 

#Mediana dos valores 
>>>df.median()

 


Aplicando funções

>>> f = lambda x: x*2 

#Aplica a função 
>>> df.apply(f) 

#Aplica a função por elemento 
>>> df.applymap(f)

Alinhamento de dados

Alinhamento interno de dados

>>> s3 = pd.Series([7, -2, 3], index=[‘a’, ’c’, ’d’]) 
>>> s + s3 
a 10.0 
b NaN 
c 5.0 
d 7.0

Operações aritméticas com métodos de preenchimento

#É possível alinhar dados usando métodos de preenchimento.
>>> s.add(s3, fill_value = 0) 
a 10.0 
b -5.0 
c 5.0 
d 7.0 
>>> s.sub(s3, fill_value = 2) 
>>> s.div(s3, fill_value = 4) 
>>> s.mul(s3, fill_value = 3)

Versão para impressão do guia: Acesso Rápido ao Pandas


Veja também: