Perfil

Álvaro Justen @turicas


Sobre mim

-

Propostas

[4h] Capturando dados com Python

Capturando Dados com Python


O Problema


Dada a imensa quantidade de informação disponível na Web de forma distribuída e não padronizada, é comum a necessidade de capturar e converter/normalizar esses dados antes de começar o trabalho desejado em cima deles: análise e visualização. As etapas de captura e normalização tiram o foco do projeto de análise e visualização e podem ser bastante trabalhosas.


O objetivo desse tutorial é apresentar ferramentas para facilitar/automatizar ao máximo as etapas de captura e normalização de dados.


Captura de Dados


Essa é a etapa onde baixamos a informação desejada, mesmo que ainda esteja em um formato não amigável para fazer análise. Exploraremos o uso das seguintes bibliotecas:



Normalização de Dados


Após feita a captura precisamos normalizar os dados, colocando-os em formatos amigáveis à etapa de análise.


O processo de normalização tende a ser bastante trabalhoso e passível de inúmeros erros, dado que nem sempre os dados estão padronizados ou amigáveis à análise. Nessa etapa veremos o funcionamento da biblioteca rows (desenvolvida por Álvaro Justen) que visa automatizar ao máximo o parsing de formatos de dados tabulares (como CSV, HTML, XLS, dentre outros), bem como a extração para outros formatos.


 

Capturando dados abertos sem dor de cabeça

Desde a criação de Lei de Acesso à Informação (LAI[1]) vários órgãos públicos estão disponibilizando dados que antes não tínhamos acesso, porém nem sempre os dados estão facilmente acessíveis: são públicos, mas estão disponíveis em formatos não próprios para fazer análises, muitas vezes contendo erros de formatação e falta de metadados. Quanto menos acessível um dado está, apesar de público, mais perto de um dado fechado ele está.
Nesse tutorial Turicas apresentará diversas bases de dados abertas com as quais já trabalhou, os problemas que enfrentou e técnicas/metodologias para facilitar o uso desses dados, para que você não perca tempo das próximas vezes. Também serão mostrados exemplos de resultados (e código!) desse trabalho de jornalismo de dados no projeto Gênero e Número[2], em que analisamos as questões de gênero no Brasil (e para isso precisamos acessar as mais distintas bases de dados públicas: algumas disponíveis apenas em tabelas HTML, outras em CSVs de gigabytes de tamanho ou mesmo em formatos não padronizados). Ao final, discutiremos como desenvolvedores podem colaborar entre si na utilização de dados abertos mais acessíveis, para evitar retrabalho de captura, limpeza e conversão de dados.


Nota: esse NÃO é um tutorial para iniciantes em Python!


[1]: http://www.planalto.gov.br/ccivil_03/_ato2011-2014/2011/lei/l12527.htm
[2]: http://generonumero.media/

Capturando dados abertos sem dor de cabeça

Desde a criação de Lei de Acesso à Informação (LAI[1]) vários órgãos públicos estão disponibilizando dados que antes não tínhamos acesso, porém nem sempre os dados estão facilmente acessíveis: são públicos, mas estão disponíveis em formatos não próprios para fazer análises, muitas vezes contendo erros de formatação e falta de metadados. Quanto menos acessível um dado está, apesar de público, mais perto de um dado fechado ele está.
Nesse tutorial Turicas apresentará diversas bases de dados abertas com as quais já trabalhou, os problemas que enfrentou e técnicas/metodologias para facilitar o uso desses dados, para que você não perca tempo das próximas vezes. Também serão mostrados exemplos de resultados (e código!) desse trabalho de jornalismo de dados no projeto Gênero e Número[2], em que analisamos as questões de gênero no Brasil (e para isso precisamos acessar as mais distintas bases de dados públicas: algumas disponíveis apenas em tabelas HTML, outras em CSVs de gigabytes de tamanho ou mesmo em formatos não padronizados). Ao final, discutiremos como desenvolvedores podem colaborar entre si na utilização de dados abertos mais acessíveis, para evitar retrabalho de captura, limpeza e conversão de dados.


Nota: esse NÃO é um tutorial para iniciantes em Python!


[1]: http://www.planalto.gov.br/ccivil_03/_ato2011-2014/2011/lei/l12527.htm
[2]: http://generonumero.media/


 

Dados Tabulares: A Maneira Pythônica

Dados tabulares estão presentes em todos os lugares, em diversos formatos: CSV, XLS, ODS, HTML, JSON, bancos de dados etc. Porém as APIs das bibliotecas são completamenta diferentes, que dificulta bastante o intercâmbio de dados e acesso para análises.


Nesse tutorial será apresentada a biblioteca rows: desde seus usos mais básicos até suas entranhas; a biblioteca rows tem como objetivo prover uma API simples, direta e unificada para trabalhar com dados tabulares, suportando inúmeros formatos. Além da API, será abordada a interface de linha de comando (CLI), que facilita conversões e análises iniciais. Como a biblioteca é software livre, também serão apresentadas as melhores formas de colaborar com o projeto.


 


Para participar você deve levar um notebook com os seguintes softwares instalados:
- Python 2.7.x
- rows e todas suas dependências (pip install rows[all])
- Clone do repostiório rows que está disponível no GitHub do autor (git clone https://github.com/turicas/rows


 

Dados Tabulares: A Maneira Pythônica

Dados tabulares estão presentes em todos os lugares, em diversos formatos: CSV, XLS, ODS, HTML, JSON, bancos de dados etc. Porém, apesar de todos os formatos organizarem os dados em tabelas, cada coluna com um tipo, as APIs das bibliotecas para acessá-los são completamenta diferentes.
A biblioteca rows tem como objetivo prover uma API simples, direta e unificada para trabalhar com dados tabulares, suportando inúmeros formatos. Além da API, será abordada a CLI (command-line interface), que facilita conversões e consultas rápidas, e as vantagens e desvantagens de cada formato apresentado.


 

rows: extraindo, normalizando e salvando dados tabulares

Dados tabulares estão presentes em todos os lugares, em diversos formatos: CSV, XLS, ODS, HTML, JSON, bancos de dados etc. Porém as APIs das bibliotecas são completamenta diferentes. A biblioteca rows tem como objetivo prover uma API simples, direta e unificada para trabalhar com dados tabulares, suportando inúmeros formatos e tornando o trabalho de análise e conversão de dados fácil e rápido.


Esse tutorial será totalmente mão-na-massa e apresentará as principais funcionalidades da biblioteca, sua CLI (command-line interface) e mostrará formas de utilizar a biblioteca para conversão automática de dados e como criar plugins para novos formatos.

rows: tornando a biblioteca mais pythônica

A biblioteca rows é utilizada para extração, conversão e análise de dados tabulares e suporta diversos formatos, como CSV, TXT, XLS, XLSX, HTML, SQLite e outros. O projeto é desenvolvido de maneira colaborativa, é software livre e usa a licença GPLv3. O projeto já está sendo usado em diversas empresas e projetos e diversas funcionalidades e melhorias foram pensadas; algumas delas - as de maior prioridade - foram separadas para essa sprint:


- Melhorar a documentação/site do projeto (com um tutorial)


- Melhorar testes automatizados já existentes e aumentar a cobertura


- Repensar a estrutura da command-line interface e torná-la genérica para novos plugins


- Desenvolvimento de novos plugins


Antes do evento será feito um vídeo por Álvaro Justen (autor da biblioteca) contendo informações sobre como se preparar para a sprint para que sua colaboração possa ser a melhor possível!

Tutorial: Capturando dados abertos sem dor de cabeça

Desde a criação de Lei de Acesso à Informação (LAI[1]) vários órgãos públicos estão disponibilizando dados que antes não tínhamos acesso, porém nem sempre os dados estão facilmente acessíveis: são públicos, mas estão disponíveis em formatos não próprios para fazer análises, muitas vezes contendo erros de formatação e falta de metadados. Quanto menos acessível um dado está, apesar de público, mais perto de um dado fechado ele está.
Nesse tutorial Turicas apresentará diversas bases de dados abertas com as quais já trabalhou, os problemas que enfrentou e técnicas/metodologias para facilitar o uso desses dados, para que você não perca tempo das próximas vezes. Também serão mostrados exemplos de resultados (e código!) desse trabalho de jornalismo de dados no projeto Gênero e Número[2], em que analisamos as questões de gênero no Brasil (e para isso precisamos acessar as mais distintas bases de dados públicas: algumas disponíveis apenas em tabelas HTML, outras em CSVs de gigabytes de tamanho ou mesmo em formatos não padronizados). Ao final, discutiremos como desenvolvedores podem colaborar entre si na utilização de dados abertos mais acessíveis, para evitar retrabalho de captura, limpeza e conversão de dados.


Nota: esse NÃO é um tutorial para iniciantes em Python!


[1]: http://www.planalto.gov.br/ccivil_03/_ato2011-2014/2011/lei/l12527.htm
[2]: http://generonumero.media/