DEV Community

Cover image for Começando nos Estudos de Data Science com Python e Pandas
João Iacillo
João Iacillo

Posted on

Começando nos Estudos de Data Science com Python e Pandas

Entrar no universo de data science vem se tornando cada vez fácil. Isto pois há uma crescente implementação neste mercado de bibliotecas e linguagens de alto-nível, como o Pandas e o Python, para que a manipulação de um alto número de dados não se torne uma tarefa complicada.


Tabela de Conteúdos


1. Introdução

Como um programador web venho dedicando meu tempo ao estudo de tecnologias relacionadas a front-end. No entanto, percebi que uma das linguagens que me introduziram à programação estava empoeirada na minha estante, o Python. Havia um bom tempo desde que eu sequer toquei nela novamente, e isso me incomodou.

Foi conhecendo o data science, através de um programa de estudos que utilizava o Python e o Pandas, que eu decidi desempoeirar a coitada e abraçar uma nova jornada na minha vida. Este artigo contêm o meu aprendizado até o momento sobre a biblioteca.

2. Entendendo a Biblioteca Pandas

O Pandas foi uma biblioteca originalmente criada para fins internos à uma empresa, mas que com o tempo, foi se tornando parte da comunidade open-source, e hoje possui a contribuição de muitos desenvolvedores ao redor do mundo para sua evolução.

Seu principal objetivo é trabalhar com informações, sejam tabuladas ou em sequência (em tabela ou em lista). Além de apresentar poderosas ferramentas e integrações com outras bibliotecas que compõem o universo do data science no Python.

Seus dois tipos de estruturas mais comuns são o DataFrame e a Series, que apesar de possuirem a função em comum de armazenar dados, são manuseados de formas diferentes, e um depende do outro para coexistirem.

3. Estruturas de Dados

3.1. DataFrames

Sendo uma estrutura tabulada, o DataFrame armazena os dados de forma parecida com o Excel ou CSV, atribuindo à uma matriz de duas dimensões linhas e colunas, que quando em conjunto, apontam para uma única célula de informação.

Coluna Coluna Coluna Coluna
Linha Célula Célula Célula Célula
Linha Célula Célula Célula Célula
Linha Célula Célula Célula Célula

Sua criação pode ser realizada através de listas, dicionários, arrays do Numpy, ou outro DataFrame. Para a leitura de arquivos, o Pandas possui funções auxiliares que possuem o nome seguindo o formato read_T(), sendo T o tipo do arquivo, como por exemplo csv (read_csv()); html (read_html()); excel (read_excel()); etc.

Utilizarei abaixo dois exemplos que aprendi durante meus estudos, um dataset sobre carros: (1) escrito manualmente como lista; (2) lido de um arquivo CSV:

import pandas as pd

# Definição dos dados
dados = [
    {'Nome': 'Jetta Variant', 'Motor': 'Motor 4.0 Turbo', 'Ano': 2003, 'Quilometragem': 44410.0, 'Zero_km': False, 'Valor': 88078.64},
    {'Nome': 'Passat', 'Motor': 'Motor Diesel', 'Ano': 1991, 'Quilometragem': 5712.0, 'Zero_km': False, 'Valor': 106161.94},
    {'Nome': 'Crossfox', 'Motor': 'Motor Diesel V8', 'Ano': 1990, 'Quilometragem': 37123.0, 'Zero_km': False, 'Valor': 72832.16}
]

dataframe = pd.DataFrame(dados)
dataframe
Enter fullscreen mode Exit fullscreen mode

table-data

import pandas as pd

# Leitura do arquivo CSV
carros = pd.read_csv('db.csv', sep=';', index_col='Nome')
carros
Enter fullscreen mode Exit fullscreen mode

table-data

Como é possivel ver, ambos os casos trazem as mesmas colunas, porém com quantidades diferentes de linhas. Por conter muitas linhas no arquivo, o display da tabela encurta a quantidade para apenas 10, que é o padrão.

3.2. Series

As Series são sequencias de dados e possuem uma estrutura similar a uma lista no Python. Elas podem ser criadas a partir de uma lista, um dicionário, ou array do Numpy.

carros = ['Jetta Variant', 'Passat', 'Crossfox']
pd.Series(carros)
Enter fullscreen mode Exit fullscreen mode
Índice Valor
0 Jetta Variant
1 Passat
2 Crossfox
dtype: object

4. Querying

Uma das ferramentas poderosas de um DataFrame é sua habilidade de executar queries (pesquisas) em cima dos dados. O retorno de uma query pode tanto ser uma cópia do DataFrame que possui apenas os valores requeridos, ou uma Series de índice ou booleana.

As queries podem ser realizadas tanto dentro de colchetes ([]) após o nome do DataFrame, quando usando o método query().

# Usando colchetes
dataframe[dataframe.ColumnName == "VALOR"]
dataframe[dataframe['ColumnName'] == "Valor"]

# Usando query()
dataframe.query('ColumnName == "Valor"')
Enter fullscreen mode Exit fullscreen mode

A razão de utilizar uma ou outra é meramente sintática, isto pois o query por colchetes possui uma estrutura não muito convencional no Python e pode ser considerada complicada. Já o query() utiliza a sintáxe própria do Python para realizar as buscas, então é uma alternativa mais amigável:

df[(df.IsActive == True) & (df.Name.str.startswith("Nicholas"))]

df.query('IsActive == True and Name.str.startswith("Nicholas")')
Enter fullscreen mode Exit fullscreen mode

5. Conclusão

O Pandas é uma biblioteca muito poderosa e que abrange diversas ferramentas úteis para manipulação de dados. Sua integração direta com o Numpy permite aos cientistas de dados realizarem suas operações muito mais facilmente.

Como podem ver, estou ainda no começo e pretendo continuar estudando mais sobre essa área para agregar aos meus projetos. Dados são importantes hoje em dia, e é util aprender a manusea-los quando necessário.

Top comments (4)

Collapse
 
matheusfilg profile image
Matheus Filgueiras

Não tem como, python e pandas são lindos e devem ser protegidos a todo custo, chega da um gosto a mais de estuda-los <3

Collapse
 
iacillodev profile image
João Iacillo

Exatamente, os dois fazem um par muito bonito, além de serem mt fáceis de usar 😂

Collapse
 
clintonrocha98 profile image
Clinton Rocha

Parabéns pelo conteúdo, quero ver mais da sua evolução nesse tipo de conteúdo 😁!

Collapse
 
iacillodev profile image
João Iacillo

Muito obrigado pelo incentivo Clinton!