Carregando...
Ciência de DadosPython

Trabalhando com Pandas e Python

O que é o Pandas? É uma biblioteca que te permite carregar dados em CSVs, tabelas de banco de dados e manipular esses dados de inúmeras maneiras (gerando estatísticas, limpando dados, etc).

O jeito mais comum de usar o Pandas é pelo Jupyter. Diferentemente de uma IDE comum, o Jupyter permite ir programando interativamente, sem precisar executar tudo do zero toda vez que for rodar o programa.

Quais são os tipos de dados no Pandas?

Para operações numéricas o Pandas gosta de converter tudo automaticamente para os tipos de dados do Numpy (embora as vezes você precisa fazer isso manualmente). Isso porque o Numpy no fundo é uma fachada para estruturas de dados nativas em C, tudo isso para aumentar a performance do Pandas (que roda em Python, uma linguagem muito fácil de entender mas de baixa performance).

Uma forma interessante de descobrir o tipo de um dado em um data frame é:

print(df.describe)

Referências sobre tipos de dados

Resposta interessante no Stack Overflow
https://stackoverflow.com/questions/29245848/what-are-all-the-dtypes-that-pandas-recognizes

Pandas para pessoas do SQL

Um tutorial com consultas em SQL e seus equivalentes no Pandas
https://hackernoon.com/pandas-cheatsheet-for-sql-people-part-1-2976894acd0

Criando uma coluna a partir do valor de outras em um DataFrame

df[‘nova_coluna’] = df.apply(lambda row: )

Tipos de dados no Pandas

Tome muito cuidado com as conversões automáticas utilizando category no pandas.

Mudando o tipo de uma coluna numpy datetime64 no pandas

df[‘day’] = df[‘day’].values.astype(‘datetime64[M]’)

https://stackoverflow.com/questions/40039457/how-to-change-date-in-pandas-dataframe

Deletando linhas no Pandas

https://chrisalbon.com/python/data_wrangling/pandas_dropping_column_and_rows/

Aumentando o limite de linhas mostradas pelo visualizador

pd.options.display.max_rows = 999

Referência

https://stackoverflow.com/questions/26886653/pandas-create-new-column-based-on-values-from-other-columns

Filtrando e cortando um dataframe com multi índices

Faz o uso das operações iloc, loc e ix.

https://www.somebits.com/~nelson/pandas-multiindex-slice-demo.html

Using iloc, loc, & ix to select rows and columns in Pandas DataFrames

Fazendo shift em um dataframe com multi índices

https://stackoverflow.com/questions/23198053/how-do-you-shift-pandas-dataframe-with-a-multiindex

Dicas de manipulação de TimeSeries no Pandas

https://s3.amazonaws.com/assets.datacamp.com/production/course_5702/slides/chapter1.pdf

Qual a diferença entre dados do tipo Vector e Raster?

Vector vs Raster: What’s the Difference Between GIS Spatial Data Types?

Deixando o uso de memória no Pandas mais leve

https://www.dataquest.io/blog/pandas-big-data/

Usando dados geográficos no Pandas com o Geopandas

o Geopandas é uma biblioteca que adiciona ao Pandas todas as funcionalidades para operações geoespaciais. É muito útil para fazer análises exploratórias e rápidas de dados geoespaciais. Confira o GIT e a Documentação. O Geopandas faz nada mais que integrar a biblioteca Shapely com o Pandas. O Shapely é quem permite operações geométricas e geográficas no Python, por isso ele vem de tabela junto com o Geopandas.

Instalando o Geopandas

O melhor jeito de usar o geopandas é através do conda juntamente com o conda-forge (pois o repositório padrão do conda usa uma versão muito antiga do geopandas).

Instale Miniconda

Instale o Miniconda

Instale o Anaconda (GUI para o Conda)

Instale o Anaconda

Abra a interface gráfica do Anaconda digitando no terminal

~/anaconda3/anaconda-navigator

Crie um ambiente virtual para instalarmos o geopandas

Crie um ambiente virtual para seu projeto (pode ser via interface grafica ou pelo terminal), deixe o repositório do conda-forge como padrão, instale o Python 3.7, geopandas, jupyter, matplotlib, mplleaflet:

conda create --name geopandas 
conda activate geopandas
# conda activate ~/anaconda3/env/geopandas
conda config --add channels conda-forge
conda config --set channel_priority strict
conda install python=3.7 geopandas jupyter matplotlib mplleaflet

Como descobrir os ângulos entre dois pontos?

https://glenbambrick.com/tag/shapely/

https://www.packtpub.com/mapt/book/application_development/9781783552429/5/ch05lvl1sec56/calculating-line-direction

https://docs.scipy.org/doc/numpy/reference/generated/numpy.arctan2.html

https://stackoverflow.com/questions/9970281/java-calculating-the-angle-between-two-points-in-degrees

Referências para o GeoPandas

Spatial data, GeoPandas, and Pokémon: Part I
https://towardsdatascience.com/spatial-data-geopandas-and-pok%C3%A9mon-part-i-8525c801ed18

Geospatial Analysis with Python, GeoJSON and GeoPandas
https://www.twilio.com/blog/2017/08/geospatial-analysis-python-geojson-geopandas.html

Making Maps With Python mplleaflet
http://michelleful.github.io/code-blog/2015/07/15/making-maps/

Uma lista com todos os mapas que você pode usar na plotagem:
https://github.com/jwass/mplleaflet/blob/master/mplleaflet/maptiles.py

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *