Search
Close this search box.
Pandas para ciência de dados – parte 1
pandas python

Posts Relacionados:

Pandas é uma biblioteca Python fácil e intuitiva para tarefas de ciência de dados. Neste post, exploraremos algumas de suas principais funcionalidades para análises e manipulações de dados em códigos Python.

Receba nossa newsletter

Ciência de dados com pandas

pandas

Na postagem anterior, fizemos uma pequena introdução à ciência de dados e ao pandas, o pacote Python mais importante para a área. Neste post, nos dedicaremos a explorar o pandas em código. Para acompanhar a postagem, é preciso instalar a biblioteca:

				
					pip install pandas
				
			

A instalação com conda pode ser feita com o comando:

				
					conda install anaconda::pandas
				
			

Para explorar o pandas para ciência de dados, precisamos de alguns dados. Usaremos o conjunto de dados iris, disponível nesse site. Acesse o conjunto de dados aqui, faça o download e descompacte (unzip) o arquivo na localização desejada. Na pasta descompactada, você encontrará vários arquivos.

O conjunto de dados iris consiste em 50 amostras (exemplos) de cada uma das três espécies de iris (Iris setosa, Iris virginica e Iris versicolor). Ele possui quatro características de cada amostra: o comprimento e a largura das sépalas e pétalas, em centímetros. Esse conjunto é tipicamente usado como um exemplo didático para algoritmos de machine learning.

Abrindo arquivos CSV

Para usar o pandas, o primeiro passo é importá-lo no nosso código Python. Crie um código Python com o nome que desejar e insira a linha abaixo.

				
					import pandas as pd
				
			

Depois, precisamos abrir nossos dados. O pandas trabalha com vários formatos de dados. Nosso exemplo está em CSV. Para abrir um arquivo CSV como os dados da iris, usamos o comando read_csv(). O arquivo que usaremos está na pasta chamada iris e se chama iris.data. Não se esqueça de inserir no comando abaixo a localização correta do seu arquivo.

O arquivo iris não está com os nomes dos atributos. Por isso, eles serão inseridos explicitamente como mostrado abaixo (na linha 2 definimos os nomes, na linha 3 eles são indicados para serem usados no arquivo). Essa passagem não é essencial, mas é importante para manter os dados organizados.

				
					filename = 'Sua Locação/iris/iris.data'
names = ["sepal length", "sepal width", "petal length", "petal width", "Class"]
df = pd.read_csv(filename, names = names)
				
			

Com a execução desses comandos, o arquivo de dados do conjunto iris já estará disponível através do pandas para ser analisado e manipulado.

Como mencionado acima, o pandas não lida apenas com dados CSV. Para abrir dados do excel, por exemplo, ao invés de read_cvs() basta mudar o comando para read_excel(). Veja mais sobre os inputs que o pandas aceita aqui.

O mais básico

Em ciência de dados, a exploração mais básica de um conjunto de dados pode ser feita com as funcionalidades head() e tail(). Elas mostram, respectivamente, as primeiras (cabeça) ou as últimas (cauda) linhas do DataFrame. Note que, no nosso exemplo, o DataFrame é tratado como df, terminologia comum na área.

				
					print(df.head())
				
			

Os resultados do comando head() sao mostrados abaixo. Veja que a primeira coluna se refere a índices inseridos automaticamente pelo pandas.

				
					   sepal length  sepal width  petal length  petal width        Class
0           5.1          3.5           1.4          0.2  Iris-setosa
1           4.9          3.0           1.4          0.2  Iris-setosa
2           4.7          3.2           1.3          0.2  Iris-setosa
3           4.6          3.1           1.5          0.2  Iris-setosa
4           5.0          3.6           1.4          0.2  Iris-setosa
				
			
				
					print(df.tail())
				
			

Resultados do comando tail()

				
					
     sepal length  sepal width  petal length  petal width           Class
145           6.7          3.0           5.2          2.3  Iris-virginica
146           6.3          2.5           5.0          1.9  Iris-virginica
147           6.5          3.0           5.2          2.0  Iris-virginica
148           6.2          3.4           5.4          2.3  Iris-virginica
149           5.9          3.0           5.1          1.8  Iris-virginica
				
			

O comando shape mostra as dimensões (linhas, colunas) do DataFrame.

				
					print(df.shape)
				
			
				
					(150, 5)
				
			

O conjunto iris possui 4 colunas de recursos e uma coluna com os rótulos, ou seja, 5 colunas no total. Ele tem 150 linhas, cada uma contendo os recursos e classificações de um exemplar diferente.

Exploração inicial

Talvez os comandos mais importantes para adquirir uma compreensão rápida sobre um conjunto de dados sejam o info() e describe(). O comando info() retorna um resumo sobre o conjunto de dados, incluindo os tipos de dados presentes e contagens não nulas.

				
					print(df.info())
				
			
				
					<class 'pandas.core.frame.DataFrame'>
RangeIndex: 150 entries, 0 to 149
Data columns (total 5 columns):
 #   Column        Non-Null Count  Dtype  
---  ------        --------------  -----  
 0   sepal length  150 non-null    float64
 1   sepal width   150 non-null    float64
 2   petal length  150 non-null    float64
 3   petal width   150 non-null    float64
 4   Class         150 non-null    object 
dtypes: float64(4), object(1)
memory usage: 6.0+ KB
None
				
			

Já a funcionalidade describe() realiza cálculos estatísticos básicos como contagem, média, desvio padrão, etc.

				
					print(df.describe())
				
			
				
					       sepal length  sepal width  petal length  petal width
count    150.000000   150.000000    150.000000   150.000000
mean       5.843333     3.054000      3.758667     1.198667
std        0.828066     0.433594      1.764420     0.763161
min        4.300000     2.000000      1.000000     0.100000
25%        5.100000     2.800000      1.600000     0.300000
50%        5.800000     3.000000      4.350000     1.300000
75%        6.400000     3.300000      5.100000     1.800000
max        7.900000     4.400000      6.900000     2.500000
				
			

loc() e iloc()

Os comandos loc() e iloc() permitem acessar os dados por nomes (loc) ou posições (iloc). Ilustraremos seus usos a seguir.

Na linha abaixo, usamos o loc() para obter os valores de sepal width das cinco primeiras amostras. Como mostrado abaixo, o comando loc() permite que o nome de uma coluna seja diretamente usado para acessar seus valores.

				
					print(df.loc[0:5, 'sepal width'])
				
			
				
					0    3.5
1    3.0
2    3.2
3    3.1
4    3.6
5    3.9
Name: sepal width, dtype: float64
				
			

Diferentemente do comando loc(), o iloc() possibilita acessar dados através de suas posições ou índices. Por exemplo, na linha abaixo, o comando iloc() é usado para retornar os dez primeiros dados apenas da coluna 2.

				
					print(df.iloc[:10,2])
				
			
				
					0    1.4
1    1.4
2    1.3
3    1.5
4    1.4
5    1.7
6    1.4
7    1.5
8    1.4
Name: petal length, dtype: float64
				
			

iloc().value

Uma variação do iloc muito usada em machine learning é o iloc().value. Esse comando é usado para isolar apenas os valores dos dados para o treinamento de algoritmos. Para o nosso exemplo do conjunto iris, se fossemos treinar um classificador, seus atributos seriam usados para criar o conjunto X das variáveis independentes. Já os rótulos das iris seriam usados para criar o conjunto y (variáveis dependentes). Você pode ler mais sobre variáveis dependentes e independentes em machine learning aqui. A extração dos valores dos dados para criar os conjuntos X e y com iloc().value pode ser feita assim:

				
					X = df.iloc[:,:-1].values
y = df.iloc[:,-1].values
				
			

Nas linhas acima, o conjunto X é criado com todas as colunas, menos a última que inclui as classificações (rótulos). Já o y é formado apenas pela última coluna.

Com isso, encerramos o post. Na próxima postagem, exploraremos como o pandas lida com dados ausentes.

Imagem com IA Generativa – Dia 100

IA generativa img100

Arte com IA generativa: imagem do dia

Todos os dias, postamos um exemplo de imagem artística gerada com inteligência artificial.

Tutoriais

Postagens Mais Recentes

Outras Postagens Que Podem Interessar

Veja
Mais

Fique em contato

Se inscreva para receber nossa newsletter com novidades.

aprendiz artificial