Você está na página 1de 7

PYTHON PARA CIÊNCIA DE DADOS: UMA REVISÃO

SISTEMÁTICA DA LITERATURA
Evandro V. Mafort1 , Gabriel Rodrigues1 , Lorran F. da C. Parreira1

1
Bacharelado em Sistemas de Informação – Centro Federal de Educação Tecnológica
Celso Suckow da Fonseca - (Cefet/RJ)
Campus Nova Friburgo/RJ – Brazil, 2022

{evandro.mafort,gabriel.rodrigues.4,lorran.parreira}@aluno.cefet-rj.br

Abstract. The following work aims to present a systematic literature review on Python focused
on science and data analysis. It is likely that the amount of data generated daily is immense
and, consequently, the potential generation of information through them is equally homeric.
No work can be done without adequate tools for this and that’s why we look to answer which
tools (popularly known as libraries) are most used in tasks involving this area, analyzing some
works that cover distinct areas and selected by the group, seeking, subsequently, to show the
state-of-the-art that the area is in regarding the subject.

Resumo. O trabalho a seguir tem como objetivo apresentar uma revisão sistemática de litera-
tura sobre Python voltado para ciência e análise de dados. É verossı́mil que a quantidade de
dados gerada diariamente é imensa e, consequentemente, a potencial geração de informação
através deles é igualmente homérica. Nenhum trabalho pode ser realizado sem ferramentas
adequadas para tal e, por isso, procuramos responder quais ferramentas (popularmente co-
nhecidas como bibliotecas) são mais utilizadas nas tarefas que envolvem esta área, analisando
alguns trabalhos que abrangem áreas distintas e selecionados pelo grupo, procurando, a pos-
teriori, mostrar o estado-da-arte que a área se encontra no tocante ao assunto.

1. Introdução
Nos últimos anos houve um aumento significativo na quantidade de informações geradas por conta
dos avanços tecnológicos. Parte desses avanços foram uma consequência direta da pandemia do Covid-19,
que fez com que grande parte da população ficasse confinada dentro de suas residências, o que contribuiu
nesse aumento de informações.
Segundo uma pesquisa analisando o perı́odo de (2019 - 2021), realizada para determinar o acesso
à internet nos domicı́lios, a TIC Domicı́lios 2021, divulgada em julho de 2022 pelo Centro Regional de
Estudos para o Desenvolvimento da Sociedade da Informação (Cetic.br), evidenciou um aumento de 71%
para 82% o percentual de residências com acesso à internet nesses dois anos. [Neto and De 2022]
Uma das áreas responsáveis por lidar com esse grande número de informações é a ciência de dados,
um campo que se ocupa do uso de técnicas estatı́sticas, computacionais e de aprendizado de máquina para
extrair conhecimento, com o objetivo de gerar informações úteis. Como menciona o livro ”An Introduction
to Data Science”, a ciência de dados é uma combinação de teoria, metodologia e técnicas aplicadas para
coleta, limpeza, análise, modelagem e visualização de dados, tendo como objetivo transformar dados brutos
em informação útil para tomar decisões. [Saltz and Stanton 2017]

2. Fundamentação Teórica
Abaixo, segue a fundamentação teórica das principais ferramentas utilizadas por cientistas, ana-
listas e engenheiros da área de dados.
2.1. Python
Criada por Guido van Rossum em 1989, Python é uma linguagem de programação de alto nı́vel,
interpretada e open-source. Ela possui uma sintaxe simplificada e de aprendizagem fácil, tornando-a uma
boa opção para iniciantes. Além disso, sua quantidade de bibliotecas - conjuntos de funções e módulos úteis
para encurtar o tamanho de um código - e sua comunidade ativa de desenvolvedores contribuem para sua
popularidade em diversas áreas, incluindo desenvolvimento web, análise de dados, inteligência artificial e
ciência da computação. [Matthes 2015]

2.2. Banco de dados


Banco de Dados envolve um conjunto de informações inter-relacionadas e armazenadas de forma
organizada e controlada. Ele é utilizado para armazenar, gerenciar, manipular e recuperar informações de
forma eficiente e segura pelos usuários e aplicações. Tal fato ocorre por meio de diferentes modelos de
dados, como relacional, hierárquico e de rede, e por conjuntos de regras e procedimentos que garantem a
segurança dos dados. [Date 2003]

2.3. Big data


Big Data refere-se à um grande volume de dados coletados diarimente. Tais dados são
classificados em estruturados, semi-estruturados ou não estruturados e podem ser gerados por diver-
sas fontes, como câmeras de segurança, redes sociais, dispositivos móveis, entre outros. Por conta
de sua dimensão, seu conteúdo é incapaz de ser gerenciado por ferramentas e tecnologias tradicionais.
[McAfee and Brynjolfsson 2012]

2.4. ETL
ETL (Extrair, Transformar e Carregar) é um procedimento voltado em integrar dados de fontes
diversas em um sistema centralizado, como um data warehouse ou data lake. Tal processo é divido em três
conceitos:
Extração: Consiste na coleta de dados, estruturados, semi-estruturados ou não estruturados, de
diferentes fontes, como sistemas legados, arquivos, bancos de dados ou aplicativos.
Transformação: Feita a coleta, os dados são transformados a fim de atender os requisitos do
sistema alvo. A mudança desse conteúdo inclui ações como limpeza, validação, agregação e formatação.
Carregamento: Finalizando o processo, os dados transformados são carregados para o sistema
alvo a partir de tabelas, ı́ndices e outros componentes de bancos de dados.
Devido ao seu processo robusto e a garantia de qualidade dos dados, esse processo torna-se uma
peça fundamental em ciência de dados. Além disso, o ETL permite a integração de dados de diferentes
fontes e sistemas. [Inmon 2005]

2.5. Machine learning


Machine Learning é uma das principais áreas que envolvem inteligência artificial, onde o desen-
volvimento de algoritmos que permitem que as máquinas aprendam a partir de exposição de dados é o
principal foco a ser trabalhado. Ou seja, o objetivo desse campo é tornar a máquina capaz de aprender com
exemplos e experiências, a fim de identificar padrões e tomar decisões, substituindo assim a programação
que realiza um trabalho especı́fico. [Murphy 2012]

2.6. Pipeline
Pipeline consiste em uma sequência de etapas executas em série a fim de transformar dados brutos
em informações úteis. Cada etapa é responsável por processar e produzir os dados de entrada em dados de
saı́da que são usados como os de entrada para a próxima etapa. Tal feito cria uma vantagem em relação a
capacidade de dividir grandes tarefas em subtarefas menores, mais gerenciáveis e que possam ser executadas
de forma paralela para uma melhor eficiência. [Ji et al. 2012]
2.7. Ferramentas
Existem várias ferramentas populares utilizadas na ciência de dados, incluindo:

2.7.1. Visualização de dados

Matplotlib: biblioteca de gráficos utilizada no Python, usada em conjunto com outras bibliote-
cas cientı́ficas, e que fornece uma interface de programação de aplicativos para desenhar gráficos em 2D.
[Hunter 2007]
Seaborn: biblioteca de visualização de dados para Python, baseado em Matplotlib, e capaz de
fornecer uma interface de alto nı́vel para desenhar gráficos estatı́sticos. [Waskom 2021]
Folium: biblioteca de criação de mapas interativos, geralmente usada para visualização de dados
geográficos, e que concede a adição de polı́gonos, linhas e camada de marcadores em um espaço funda-
mentado em Leaflet.JS. [Géron 2019]
Pylab: módulo do Python desenvolvido para facilitar a transição de usuários de outras linguagens
de programação e que combina as funcionalidades de Pyplot e NumPy para auxiliar no desenvolvimento de
gráficos e análise de dados. [Hunter 2007]

2.7.2. Processamento de dados

PySpark: biblioteca para processamento de grande volume de dados com o Apache Spark. É
utilizado em aplicações de análise de dados em grande escala, como processamento de fluxo de dados,
mineração de dados e aprendizado de máquina. [Mishra 2017]

2.7.3. Análise e manipulação de dados

Pandas: biblioteca de software para Python com foco em operações de análise de dados, como
filtragem, agrupamento, transformação e junção de dados. Além disso, ela oferece duas estruturas para o
processamento e visualização de dados: Series e DataFrame. [McKinney 2012]
Numpy: biblioteca de computação cientı́fica para Python com suporte em arrays multidimensio-
nais e que realiza operações matemáticas avançadas (Aritmética, Álgebra Linear, Cálculo, etc.). [PhD 2015]
Statsmodels: pacote de software para estatı́sticas em Python e que permite ao usuário
estimar modelos estatı́sticos, realizar testes estatı́sticos e fazer análise exploratória de dados.
[Seabold and Perktold 2010]
Scipy: biblioteca Open Source de software livre para computação cientı́fica em Python. Ela ofe-
rece algoritmos e ferramentas para tarefas comuns, como processamento de sinais, estatı́sticas, algoritmos
de otimização entre outros. [Millman and Aivazis 2011]

2.7.4. Aprendizado de máquina

Scikit-learn: biblioteca de machine learning para Python e que disponibiliza ferramentas para ta-
refas de aprendizado supervisionado e não-supervisionado, incluindo regressão, classificação, agrupamento,
seleção de recursos e redução de dimensionalidade. [Pedregosa et al. 2011]
Sktime: biblioteca de aprendizado de máquina para séries temporais, tarefas de previsão e re-
gressão. Ela inclui ferramentas para tarefas comuns de processamento de séries temporais, como janela-
mento, normalização e geração de séries temporais sintéticas. [Bagnall et al. 2017]
2.7.5. IDE

Jupyter Notebook: plataforma de desenvolvimento de software que permite a criação e


compartilhamento de documentos que contêm código, equações, visualizações e texto explicativo.
[Brown and Wilson 2012]

3. Metodologia de Pesquisa
A fim de estruturar o tópico de Python para ciência de dados como a área a ser abordada, optamos
em realizar uma revisão sistemática da literatura, através da busca de artigos e textos no site Google Scholar.
Dessa forma, desejamos estabelecer respostas para o seguinte questionamento: (a) Quais as bibliotecas de
organização e manipulação de dados são utilizadas dentro do contexto de data science? O processo
foi dividido em quatro etapas: Busca, filtragem, leitura e resultados.

3.1. Busca
Essa etapa consistiu em definir uma plataforma para estabelecer as buscas por artigos e outros
textos acadêmicos. A plataforma escolhida foi o Google Scholar, por possuir uma ferramenta de busca
abrangente e de fácil uso por qualquer um que não esteja acostumado a utilizar.

3.2. Filtragem
Após a escolha do Google Scholar como nossa ferramenta de busca, seguimos para a filtragem
de resultados, definindo os critérios de inclusão e de exclusão. Durante a primeira rodada de buscas, sem
filtros aplicados, obtivemos um pouco menos de 1500 resultados. Na segunda rodada, aplicando filtros
(obedecendo os critérios de inclusão e exclusão que serão citados adiante), mas sem alterar a strings de
busca, obtivemos 1350 resultados.

Tabela 1. Filtragem e os seus resultados


String Filtros Resultados
”Python” And ”Ciência de dados” Inaplicado 1470
”Python” And ”Ciência de dados” Aplicado 1350
”Python” AND ”Ciência de dados” AND (”Bibliotecas”
OR ”Ferramentas”) AND ”NumPy”AND ”Pandas” Inaplicado 61
AND ”Matplotlib”AND ”Seaborn”AND ”Scikit-learn”
”Python” AND ”Ciência de dados” AND (”Bibliotecas”
OR ”Ferramentas”) AND ”NumPy”AND ”Pandas” Aplicado 58
AND ”Matplotlib”AND ”Seaborn”AND ”Scikit-learn”

Adicionando mais elementos a string de busca, assim como os filtros anteriormente aplicados,
reduzimos a quantidade de artigos por volta de 96% do número original, obtendo 58 resultados. E, por fim,
desses 58, chegamos a 4 artigos que mais se adequaram aos critérios estabelicidos pelo grupo e ao tema
proposto.

Tabela 2. Critérios estabelecidos pelo grupo


Inclusão Exclusão
Textos apenas em Português Textos em idiomas além do Português
Textos ligados diretamente com o assunto Textos que possuem acima de 60 páginas
- Textos que se afastam da proposta
3.3. Leitura
Logo terminada a filtragem, seguimos para a terceira etapa. Como os textos não possuem a mesma
quantidade de páginas, dividimos de forma proporcional a leitura de cada artigo e os resultados obtidos por
cada um foram unificados em apenas um texto.

3.4. Resultados
Devido ao trabalho em questão envolver uma revisão sistemática da literatura, utilizamos os arti-
gos escolhidos como base para a buscar quais ferramentas e bibliotecas estavam presentes nos desenvolvi-
mentos desses trabalhos.
Por possuirem aspectos únicos em áreas diversas, cada caso foi observado separadamente. Nesse
viés, a priori, o primeiro artigo envolveu uma análise avançada com base em milhões de tweets para deter-
minar o sentimento dos objetos explorados após uma entrevista do candidato Lula em 2022. Esse processo
foi dividido em 5 etapas: extração dos tweets através da API disponibilizada pelo Twitter, gerenciamento e
operação dos dados, tokenização e stopwords, análise sentimental com dicionários léxicos e avaliação dos
resultados. [Neto and De 2022]
O segundo artigo se tratou de um estudo de caso de dengue em Recife a fim de entender a linha
temporal das infecções e um possı́vel cenário a partir do ano de 2023. Esse trabalho, com base nos autores,
envolveu 2 etapas: a primeira consistiu em avaliar os dados de dengue em Recife somente no ano de 2020,
implementando gráficos que envolviam respostas de algumas consultas, a evolução final dos casos e mapas
de calor. Já a segunda parte aplicou machine learning para analisar a série temporal entre anos de 2013 a
2020: projetar um histórico ao longo desse perı́odo e verificar qual a linha de tendência para os próximos
anos. [Castro et al. 2022]
O terceiro trabalho elaborou e interou um sistema de recomendação utilizando a filtragem baseada
no conteúdo, e na criação de futuros algoritmos que utilizam filtragem colaborativa, tendo um algoritmo de
aprendizado de máquina supervisionado (kNN) como o problema a ser abordado. Tal projeto envolveu a
transformação dos dados em formato de valores separados por vı́rgula, desenvolvimento do recomendador
e testes em cima desse algoritmo. [Oliveira 2021]
Por fim, a quarta obra abordou a análise de demandas no âmbito do INSS, visando identificar um
método mais adequado para previsão de demandas futuras no âmbito da organização, devido ao reconheci-
mento de falhas no modelo utilizado pela instituição. Desse modo, essa proposta foi divida na extração e
tratamento dos dados, análise exploratória dos dados e na seleção de modelos. [Oliveira 2022]
Portanto, com base nas obras, foi possı́vel filtrar as principais ferramentas que mais contribuiram
nos projetos pela tabela abaixo:

Figura 1. Principais ferramentas utilizadas nos artigos


A partir dessa tabela, é perceptı́vel a hegemonia por parte de algumas bibliotecas em relação ao
resto das ferramentas utilizadas. Esse fato ocorreu e ocorre na maioria dos outros projetos envolvendo
ciência de dados por conta de algumas caracterı́sticas diferenciais, como a velocidade de resposta, a con-
fiabilidade e a facilidade em seus usos. Dessa forma, destacamos os usos do Matplotlib, Pandas, Numpy,
Sklearn e Seaborn, além de outras ferramentas menos frequentes, como resposta para o questionamento
abordado em nosso trabalho: Quais as bibliotecas de organização e manipulação de dados são utiliza-
das dentro do contexto de data science?

4. Conclusão
Através da seleção e leitura dos trabalhos selecionados, concluı́mos que há uma preferência em
relação ao uso de determinadas bibliotecas para darem apoio em projetos dentro da área de ciência de
dados. Muitas ferramentas são usadas dentro desse universo, porém, algumas possuem maior notoriedade
na hora do programador planejar seu trabalho. E como já exposto anteriormente, a velocidade de resposta, a
confiabilidade e a facilidade no uso são qualidades gerais que ressaltam o grau de uso dessas ferramentas por
parte da comunidade ligada a linguagem Python. Além disso, individualmente, notou-se que a preferência
do Matplotlib ocorreu por conta de seus gráficos de alta qualidade em diversos formatos, do Pandas pela sua
organização das funções e métodos que economizam tempo em reunir informações, do Numpy em realizar
cálculos em alta velocidade, do Sklearn pela sua variedade de métodos para machine learning e do Seaborn
pela sua utilidade em visualização de dados, além de possuir gráficos com qualidade.

Referências
Bagnall, A., Lines, J., Bostrom, A., Large, J., and Keogh, E. (2017). The great time series classification bake
off: a review and experimental evaluation of recent algorithmic advances. Data Mining and Knowledge
Discovery, 31(3):606–660.

Brown, A. and Wilson, G. (2012). The Architecture of Open Source Applications, Volume II. Lulu.com,
Mountain View.

Castro, A., Oliveira, A., Vieira, G., and Silva, D. (2022). Utilização da linguagem Python na análise
de dados de dengue em Recife, capital do estado de Pernambuco, Nordeste do Brasil e definição de
linha de tendência usando Machine Learning Use of Python language in the analysis of dengue data in
Recife, capital of the state of Pernambuco, Northeast of Brazil and definition of trend line using Machine
Learning.

Date, C. J. (2003). An Introduction to Database Systems. Pearson, Boston, 8th edition.

Géron, A. (2019). Hands-On Machine Learning with Scikit-Learn, Keras, and Tensorflow: Concepts,
Tools, and Techniques to Build Intelligent Systems. O’Reilly Media, Beijing China ; Sebastopol, CA,
2nd edition.

Hunter, J. D. (2007). Matplotlib: A 2D Graphics Environment. Computing in Science & Engineering,


9(3):90–95. Conference Name: Computing in Science & Engineering.

Inmon, W. H. (2005). Building the Data Warehouse. John Wiley & Sons, Indianapolis, Ind, 4th edition.

Ji, C., Li, Y., Qiu, W., Awada, U., and Li, K. (2012). Big Data Processing in Cloud Computing Environ-
ments. In 2012 12th International Symposium on Pervasive Systems, Algorithms and Networks, pages
17–23. ISSN: 2375-527X.

Matthes, E. (2015). Python Crash Course: A Hands-On, Project-Based Introduction to Programming. No


Starch Press, San Francisco, 1st edition.

McAfee, A. and Brynjolfsson, E. (2012). Big Data: The Management Revolution. Harvard Business
Review. Section: Decision making and problem solving.

McKinney, W. (2012). Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython.
O’Reilly Media, Beijing, 1st edition.
Millman, K. and Aivazis, M. (2011). Python for Scientists and Engineers. Computing in Science Enginee-
ring, 13:9–12.

Mishra, R. K. (2017). Pyspark Recipes: A Problem-Solution Approach with Pyspark2. Apress, New York,
NY, 1st edition.

Murphy, K. P. (2012). The Machine Learning: A Probabilistic Perspective. Mit Press, Cambridge, MA,
illustrated edition.

Neto, C. and De, C. P. (2022). Extração de dados e análise de sentimento: com diferentes dicionários
léxicos.

Oliveira, E. F. d. (2022). Análise de séries temporais para previsão de demanda no INSS.

Oliveira, V. B. J. d. (2021). Projeto e desenvolvimento de um algoritmo de recomendação aplicado ao


sistema science.

Pedregosa, F., Varoquaux, G., Gramfort, A., Michel, V., Thirion, B., Grisel, O., Blondel, M., Prettenhofer,
P., Weiss, R., Dubourg, V., Vanderplas, J., Passos, A., Cournapeau, D., Brucher, M., Perrot, M., and
Duchesnay, (2011). Scikit-learn: Machine Learning in Python. Journal of Machine Learning Research,
12(85):2825–2830.

PhD, T. E. O. (2015). Guide to NumPy: 2nd Edition. CreateSpace Independent Publishing Platform, 2nd
edition.

Saltz, J. S. and Stanton, J. M. (2017). An Introduction to Data Science. Sage Publications, Inc, Los Angeles,
illustrated edition.

Seabold, S. and Perktold, J. (2010). Statsmodels: Econometric and Statistical Modeling with Python.
Proceedings of the 9th Python in Science Conference, pages 92–96. Conference Name: Proceedings of
the 9th Python in Science Conference.

Waskom, M. (2021). seaborn: statistical data visualization. Journal of Open Source Software, 6(60):3021.

Você também pode gostar