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:
- Guia de acesso rápido – Python para Data Science – Matplotlib
- Participantes no Mercado de Pagamentos
- Pygal – Visualização de dados com Python