Showing posts with label python. Show all posts
Showing posts with label python. Show all posts

Tuesday, January 14, 2025

Python: .iloc e .loc

Ainda na série "Vivendo e Aprendendo", agora foi em Python.

Faz um bom tempo que faço confusão com os métodos .iloc e .loc do Pandas. E hoje, resolvi estudar um pouco mais e entendê-los.

Vou compartilhar minhas anotações aqui na esperança que ajude outras pessoas a entenderem também...

Começando do básico, .iloc e .loc são métodos do Pandas, uma poderosa biblioteca do Python utilizada para manipulação e análise de dados. Eles são usados especificamente para indexação e seleção de dados de dataframes.


- Método .iloc

Usado para indexação baseada na posição dos índices. Funciona com números inteiros e permite selecionar linhas e colunas pelo índice de suas posições.

(Lembrando que, quando criamos um dataframe no Pandas sem especificar índices personalizados, eles são atribuidos automaticamente: índices inteiros sequenciais começando do 0 - ou seja, a primeira linha / coluna terá índice 0, a segunda linha / coluna terá índice 1 e assim por diante. Há maneira de redefini-los, personalizá-los, mas isso é papo para outro post.)


- Método .loc

Usado para indexação baseada no rótulo dos índices. Funciona com os nomes dos índices e permite selecionar linhas e colunas pelos rótulos que forma atribuídos a eles.


Apesar do foco dos métodos serem diferentes (.iloc: índices | .loc: rótulos), a sintaxe deles é semelhante:

dataframe.método[linha, coluna]

df.iloc[linha, coluna] OU df.loc[linha, coluna]


E daí, refinando, por exemplo, o .iloc:


df.iloc[:, coluna] --> Seleciona todas (símbolo :) as linhas da coluna indicada do dataframe df

Exemplo:

df.iloc[:, 1] --> Seleciona todas as linhas da coluna de índice 1, ou seja, a 2a coluna.


df.iloc[linha, :] --> Seleciona todas (símbolo :) as colunas da linha indicada do dataframe df

Exemplo:

df.iloc[2, :] --> Seleciona todas as colunas da linhas de índice 2, ou seja, a 3a linha.

Observação: este cenário (selecionar todas as colunas) para linhas específicas pode ser escrita de forma simplificada: df.iloc[linha]. Assim, o comando df.iloc[2] retornaria o mesmo resultado que df.iloc[2, :].


Selecionando intervalos de linhas ou colunas:

df.iloc[linhas_início:linhas_fim]

df.iloc[:, colunas_início:colunas_fim]


E, para seleção de múltiplas linhas e colunas:

df.iloc[linhas_início:linhas_fim, colunas_início:colunas_fim]


E, para o .loc funciona da mesma forma, mas usando o rótulo das linhas e colunas.


#LearnerMidset #VivendoEAprendendo #AWTechBits

Friday, June 7, 2024

A mágica por trás da imagem

Em meu último post, sobre "Uma proposta de visualização", eu apresentei uma alternativa para uma image com dados de alfabetização no Brasil, com foco nos resultados do Estado do Ceará.

Resolvi agora compartilhar "a mágica" por trás da imagem que criei.

O que usei:

  1. Dados do gráfico original;
  2. Python / Jupyter Notebook
  3. Power Point

Simples, certo?


Vamos lá no passo-a-passo:


PARTE 1: Criando o Mapa

1. Para o Python, usei o Google Colab, e me inspirei na postagem do Rodrigo Dutcosky, de 2020, sobre "Brazilian States Choropleth Map with Python".

2. Importei as libraries: 

  • Pandas
  • NumPy
  • Geopandas

3. Baixei o mapa do Brasil, em formato .gpkg, que contém uma série de layers (camadas) que permite a criação do mapa que fiz, e importei no meu notebook.

Para baixar o mapa, acesse o site do IBGE - Instituto Brasileiro de Geografia e Estatística, e vá em "Downloads".  Nesta página vá em: cartas_e_mapas > bases_cartograficas_continuas > bcim > versao2016 > geopackage, e baixe o arquivo bcim_2016_21_11_2018.gpkg.


4. Importei o arquivo no meu notebook (e, é claro, explorei um pouquinho as informações dele).

5. Criei o dataset com os dados do mapa (Estado, Percentagem de Alfabetização e Nível) - sim, este foi criado manualmente.

6. Fiz um merge dos dados dos Estados com os dados do Mapa (o merge foi baseado na coluna "Estado").

7. Plotei o gráfico, explorando algumas opções de paletas de cores. Neste caso, testei 2: viridis e OrRd - as 2 são boas para acessibilidade, considerando pessoas com algum tipo de daltonismo. Mas achei a OrRd melhor. Brinquei também com/sem legenda. Mas como decidi montar a visualização no Power Point, deixei sem legenda.

O resultado foi este gráfico:




PARTE 2: Juntando tudo, aka, criando a imagem.

No Power Point: 

1. Criei uma aprensentação em branco.

2. Adicionei o logo do Estado do Ceará (que achei no site da SEDUC - Secretaria da Educação do Governo do Estado do Ceará, na página de Identidade Visual 2021.

3. Inseri o gráfico que criei na 1a parte.

4. Planejei as informações que eu queria na minha imagem:

  • Título (que já passasse a mensagem que eu queria que a imagem transmitisse)
  • Legenda dos Níveis, para indicar a visão geral dos Estados
  • Ressaltar o Estado do Ceará e sua marca de 85%
  • Informação geral do Brasil
  • Data e referência ao programa nacional
  • Fonte dos dados

5. Com as informações identificadas, fui "brincando" de organizá-las no espaço que eu tinha (e também com tons de cinza para dar mais ou menos ênfase no texto), até ter uma imagem equilibrada e completa.



Se você quiser ver o código para gerar este mapa, ele está disponível no meu GitHub, em "Post A mágica por trás da imagem".