Lädt...


🔧 Guia Básico para tratar dados com Pandas em Python


Nachrichtenbereich: 🔧 Programmierung
🔗 Quelle: dev.to

Olá, esse guia tem como objetivo apresentar algumas formas de tratamento de dados com a biblioteca pandas do Python, umas das mais utilizadas por profissionais na área de dados.
Primeiro, vamos fazer a importação das respectivas bibliotecas que utilizaremos
`
import pandas as pd
import matplotlib.pylab as plt

Agora, faremos a leitura da nossa base de dados

url= "https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-DA0101EN-SkillsNetwork/labs/Data%20files/auto.csv"

Note que, ao fazermos a importação da base de dados, a mesma não tem cabeçalho, então para criar o cabeçalho faremos o processo abaixo:

Criacao do cabeçalho em uma lista com seus respectivos valores

cabecalho = ["symboling","normalized-losses","make","fuel-type","aspiration", "num-of-doors","body-style",
"drive-wheels","engine-location","wheel-base", "length","width","height","curb-weight","engine-type",
"num-of-cylinders", "engine-size","fuel-system","bore","stroke","compression-ratio","horsepower",
"peak-rpm","city-mpg","highway-mpg","price"]

Adicionando o cabeçalho ao dataset que não tem cabeçalho + leitura do dataset no formato csv

df = pd.read_csv(url, names = cabecalho)
`
Nesse exemplo, o valores pendentes vão estar como “?” (interrogação). Alguma dúvidas podem surgir: o que fazer com esses valores que não vieram ? Como tratar ? Posso deletar ? …

A resposta é: Depende.. Existe algumas técnicas que podemos utilizar:

  • Apagar a coluna completa que está sem as informações;
  • Apagar a linha completa que está sem as informações;
  • Substituir os dados pela média/frequência/etc; Essas são algumas, existem várias outras forma de lidarmos com esses dados pendentes #Para visualizar alguns dados,usarmos o comando abaixo df.head() Note que, como havia informado anteriormente, alguns dados pendentes estão como “?” , agora, vamos substituir esses valores por NaN (Not a number)

Image description

`
import numpy as np

O comando abaixo substituirá ? por NaN;

O parâmetro inplace = True, salva as alterações realizadas no dataframe que estamos usando (df)

df.replace('?', np.nan, inplace = True)

Ao executar o head(), você notará que o símbolo de interrogação foi substituido por NaN

df.head()
`

Tratando (substituindo) os dados pendentes

No algoritmo abaixo, iremos substituir os valores NaN da coluna normalized-losses pela média, depois que convertermos para o tipo float

`avg_norm_loss = df["normalized-losses"].astype("float").mean(axis=0)
print("Média da normalized-losses:", avg_norm_loss)

substituir os valores NaN da coluna normalized-losses pela média

df["normalized-losses"].replace(np.nan, avg_norm_loss, inplace=True)
`

E assim podemos dar prosseguimento para todas as outras colunas que tiverem informações pendentes. Algumas dúvidas podem surgir, porque foi feita a conversão da normalized-losses para float ? A respota é: Normalized-losses é do tipo objetct, que seria semelhante a “string”, dessa forma não é possível realizarmos operações matemáticas nesse tipo de objeto, por isso fizemos a conversão.

`avg_bore=df['bore'].astype('float').mean(axis=0)
print("Média da bore:", avg_bore)

Substituindo valores NaN da coluna Bore pela média

df["bore"].replace(np.nan, avg_bore, inplace=True)

Substituindo valores NaN da coluna stroke pela média

stroke_mean = df['stroke'].astype('float').mean(axis=0)
df['stroke'].replace(np.nan, stroke_mean, inplace=True)
avg_horsepower = df['horsepower'].astype('float').mean(axis=0)

Substituindo os valores NaN da coluna 'horsepower' pela média

df['horsepower'].replace(np.nan, avg_horsepower, inplace=True)
`
No exemplo abaixo, vamos deletar todos os registros (linhas) que não tem dados da coluna price:

df.dropna(subset=["price"], axis=0, inplace=True)

Algumas informações que podem ser importantes:

  • axis = 0 >> O zero refere-se as linha .. 1 refere-se as colunas
  • inplace >> Salva as alterações realizadas no dataframe

Conversão de dados

Como já foi apresentado anteriormente, outra parte fundamental do tratamento dos dados são os tipos de dados na biblioteca pandas: object, float, int,datetime, etc. Afinal, não conseguimos calcular a média de uma variável do tipo string, certo ? Então, precisamos converter o seu data type para que isso seja possível.

Image description

Para analisarmos os tipos de dados em pandas, podemos usar a função dtype

`#Verificando o datype em python

Ela retornara o datatype de todas as variáveis (colunas) do nosso data frame

df.dtypes

Abaixo, realizamos a conversão dos data types para float, int e atribuimos a conversão a propria

variável para "salvar" as alterações. Passamos no parâmetro astype("valordavariável")

df[["bore", "stroke"]] = df[["bore", "stroke"]].astype("float")
df[["normalized-losses"]] = df[["normalized-losses"]].astype("int")
df[["price"]] = df[["price"]].astype("float")
df[["peak-rpm"]] = df[["peak-rpm"]].astype("float")`

Antes de fazer a conversão, sempre procure análisar o data type atual da variável com (dtypes) e analisar novamente após a conversão, para garantir que a alteração foi realizada com sucesso.

Esse foi um guia básico e prático de como trabalhar com tratamento de dados utilizando a biblioteca Python, as informações disponibilizadas aqui foram colhidas do curso de Análise de dados com Python — IBM da Cousera, recomendo a todos que estão estudando e procurando ampliar o seu conhecimento nessa área darem uma olhada ou até mesmo realizarem o curso, que apesar de básico é muito bom ! Obrigado a todos por lerem até aqui !

for column in missing_data.columns.values.tolist():
print(column)
print (missing_data[column].value_counts())
print("")

...

🔧 Guia Básico para tratar dados com Pandas em Python


📈 130.48 Punkte
🔧 Programmierung

🔧 Las 15 Consultas SQL Desde Lo Más Básico Hasta Lo No Tan Básico


📈 51.05 Punkte
🔧 Programmierung

🔧 O básico do SCRUM: Um guia simples e rápido


📈 44.22 Punkte
🔧 Programmierung

🔧 Comandos esenciales para la terminal: Guía práctica para principiantes


📈 44.18 Punkte
🔧 Programmierung

🔧 Comandos Linux para Redes: Um Guia Completo para DevOps


📈 44.18 Punkte
🔧 Programmierung

🔧 Para te ajudar nesse caminho, preparei um guia completo com dicas valiosas para iniciantes na área:


📈 44.18 Punkte
🔧 Programmierung

🔧 Python vs Pandas - Difference Between Python and Pandas


📈 42.3 Punkte
🔧 Programmierung

🔧 Explorando a integração entre Google Sheets e Python para automação de dados no sheets


📈 38.85 Punkte
🔧 Programmierung

🔧 Redis: Um Guia Completo sobre o Banco de Dados em Memória - Curso em vídeo


📈 38.79 Punkte
🔧 Programmierung

🔧 How to Rename a Column in Pandas – Python Pandas Dataframe Renaming Tutorial


📈 36.3 Punkte
🔧 Programmierung

🔧 [Python's Pandas] The Future Of Pandas


📈 36.3 Punkte
🔧 Programmierung

🔧 Dockerizando uma API Express.js com Banco de Dados PostgreSQL para Testes e Produção


📈 32.84 Punkte
🔧 Programmierung

🔧 Criar massa de dados para teste


📈 32.84 Punkte
🔧 Programmierung

🔧 Docker para iniciantes: Criando Containers de Bancos de Dados


📈 32.84 Punkte
🔧 Programmierung

🔧 Criei um hook personalizado para buscar dados da API do Rick and Morty com React Query


📈 32.84 Punkte
🔧 Programmierung

🔧 Como Tratar Erros e Excepões de acordo as repostas HTTP?


📈 32.27 Punkte
🔧 Programmierung

🔧 Melhor forma de tratar formulários no Remix.run


📈 32.27 Punkte
🔧 Programmierung

🔧 Como tratar erros http no Spring Boot


📈 32.27 Punkte
🔧 Programmierung

🔧 [leitura-compartilhada] Livro Aprenda Python Básico - Rápido e Fácil de Entender


📈 31.53 Punkte
🔧 Programmierung

🔧 [leitura-compartilhada] Livro Aprenda Python Básico - Rápido e Fácil de Entender


📈 31.53 Punkte
🔧 Programmierung

🔧 Guia para Iniciantes em JavaScript


📈 31.44 Punkte
🔧 Programmierung

🔧 Dominando GitOps con ArgoCD: Una guía práctica para kubernetes


📈 31.44 Punkte
🔧 Programmierung

🔧 Guía Completa para Crear una Web Estática con AWS S3 y AWS CLI


📈 31.44 Punkte
🔧 Programmierung

🔧 Guia para Trainee e Dev Jr usando Java


📈 31.44 Punkte
🔧 Programmierung

🔧 Guía completa para crear y configurar Azure Cosmos DB con Terraform


📈 31.44 Punkte
🔧 Programmierung

🔧 O guia definitivo para hospedar uma SPA Angular/React com S3, Route 53 e CloudFront


📈 31.44 Punkte
🔧 Programmierung

🔧 Guia para Iniciantes: Contribuindo em Projetos Open Source Passo a Passo


📈 31.44 Punkte
🔧 Programmierung

🔧 Guia Completo para Navegação no React Native com TypeScript


📈 31.44 Punkte
🔧 Programmierung

📰 El paradigma del trabajo híbrido: una guía práctica para implementarlo con éxito


📈 31.44 Punkte
📰 IT Security Nachrichten

🔧 Relaxamento Natural: Guia Passo a Passo para Óleos de Massagem com Lavanda


📈 31.44 Punkte
🔧 Programmierung

matomo