Pandas limpam células vazias

Este artigo explicará como utilizar o Pandas clean através do exemplo de uma célula vazia. Lidar com dados ausentes é essencial na limpeza de dados, pois valores vazios ou nulos podem afetar a qualidade e a precisão da análise.



Identificando Células Vazias

Antes de podermos limpar as células vazias, precisamos identificá-las em nossos dados.

O Pandas fornece várias funções para verificar valores ausentes ou nulos.

Aqui estão algumas funções comuns usadas para identificar células vazias no Pandas:

Funções Visão geral
é nulo() Esta função retorna um DataFrame booleano mostrando quais células contêm valores nulos.
não nulo() Esta função retorna o inverso de isnull(), mostrando quais células não contêm valores nulos.
isna() Esta função é um alias para isnull().
notna() Esta função é um alias para notnull().

Abaixo um exemplo de uso da função isnull() para identificar células vazias em um Pandas DataFrame:

Example: 

1
2
3
4
5
6
7
8
9
10
11
import pandas as pd
data = {'Name': ['John', 'Jane', 'Mike', 'Lisa', 'Tom'],
'Age': [25, 30, None, 40, 50],
'Salary': [50000, None, 70000, 80000, None]}
df = pd.DataFrame(data)
print(df.isnull())
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Observação : o exemplo acima produzirá um DataFrame booleano com valores True nas células que contêm valores nulos.

Pandas limpando células vazias

Agora que identificamos as células vazias em nossos dados, podemos prosseguir para limpá-las.

Aqui estão algumas técnicas para limpar células vazias no Pandas:

Removendo Linhas com Células Vazias

Uma possível forma de lidar com células vazias, você pode eliminar linhas que contenham células vazias de sua tabela.

Devido ao grande tamanho dos conjuntos de dados, geralmente não há problema, porque a eliminação de algumas linhas não terá um grande efeito na saída, pois os conjuntos de dados podem ser muito grandes.

Para nossos exemplos de limpeza, trabalharemos com um arquivo conhecido como 'ambiguous_data.csv', que é um arquivo CSV.

Baixe ambiguous_data.csv . ou
Abra ambiguous_data.csv

Elimine as células vazias do conjunto de dados ambiguous_data.csv:

Example: 

1
2
3
4
5
6
7
import pandas as pds
mrx_df = pds.read_csv('ambiguous_data.csv')
ample_df = mrx_df.dropna()
print(ample_df.to_string())
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Lembrete : é por padrão que o método dropna() gera um novo DataFrame e não fará nenhuma modificação no DataFrame original.

Utilize o argumento inplace = True para modificar o DataFrame original:

Se houver linhas com valores vazios, elimine todas:

Example: 

1
2
3
4
5
6
7
import pandas as pds
mrx_df = pds.read_csv('ambiguous_data.csv')
mrx_df.dropna(inplace = True)
print(mrx_df.to_string())
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Lembrete : Isso significa que dropna (inplace = True) não produzirá mais um novo DataFrame, mas eliminará todas as linhas no DataFrame original que contêm valores vazios.

Preenchendo células vazias com um valor específico

Você também pode lidar com células em branco adicionando um novo valor em vez de deixá-las vazias.

Portanto, você não precisará eliminar linhas completas apenas porque há uma célula vazia em uma linha.

Ao utilizar o método fillna() , somos capazes de substituir células em branco por um valor, como:

No exemplo a seguir, substituiremos os valores vazios por “ Mobile Application ”:

Example: 

1
2
3
4
5
6
7
import pandas as pds
mrx_df = pds.read_csv('ambiguous_data.csv')
mrx_df.fillna("Mobile Application", inplace = True)
print(mrx_df.to_string())
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Substituir apenas as colunas especificadas

É importante observar que o exemplo acima substitui todas as células vazias em todo o Data Frame.

É possível substituir apenas valores vazios por uma coluna definindo o nome da coluna do DataFrame da seguinte forma:

Na coluna “ USE ”, substitua os valores vazios por “ Mobile Application ”:

Example: 

1
2
3
4
5
6
7
import pandas as pds
mrx_df = pds.read_csv('ambiguous_data.csv')
mrx_df["USE"].fillna("Mobile Application", inplace = True)
print(mrx_df)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Substituir usando média, mediana ou moda

Para substituir células nulas em uma coluna, um dos métodos mais populares é calcular o valor médio, mediano ou modo da coluna.

Com a finalidade de calcular os valores de uma coluna específica, o Pandas utiliza os métodos mean(), median() e mode() :

Nos exemplos a seguir, utilizaremos um arquivo CSV chamado 'empWrong_data.csv'.

Baixe empWrong_data.csv . ou

Abra empWrong_data.csv

No conjunto de dados Employee Wrong, se algum valor for nulo, substitua-o pelo MEAN:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import pandas as pds
mrx_df = pds.read_csv('empWrong_data.csv')
ample = mrx_df["SALARY($)"].mean()
mrx_df["SALARY($)"].fillna(ample, inplace = True)
print(mrx_df.to_string())
#In row 5 and 10, you can observe that the blank values from "SALARY($)" have been filled with the mean value of 311.111111
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Média = Este é o valor médio (o total de todos os valores dividido pelo número de valores).

Substitua o MEDIAN por quaisquer valores nulos:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import pandas as pds
mrx_df = pds.read_csv('empWrong_data.csv')
ample = mrx_df["SALARY($)"].median()
mrx_df["SALARY($)"].fillna(ample, inplace = True)
print(mrx_df.to_string())
#In row 5 and 10, you can observe that the blank values from "SALARY($)" have been filled with the median value of 300.0
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Mediana = Quando todos os valores tiverem sido organizados em ordem crescente, o valor central é exibido.

Aplicando o MODE como uma substituição para valores nulos, calcule o seguinte:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import pandas as pds
mrx_df = pds.read_csv('empWrong_data.csv')
ample = mrx_df["SALARY($)"].mode()[0]
mrx_df["SALARY($)"].fillna(ample, inplace = True)
print(mrx_df.to_string())
#In row 5 and 10, you can observe that the blank values from "SALARY($)" have been filled with the mode value of 300.0
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Moda = É o valor que ocorre com mais frequência no conjunto de dados.

Exemplo de Explicação

O código fornecido carrega um arquivo CSV chamado “ empWrong_data.csv ” usando a função read_csv da biblioteca Pandas e cria um DataFrame chamado mrx_df a partir dos dados. Os dados no arquivo CSV provavelmente representam registros de funcionários, incluindo seus salários.

O código então calcula o modo da coluna “ SALARY($) ” do DataFrame mrx_df usando a função mode() e o armazena em uma variável chamada ample. A moda é o valor que ocorre com mais frequência na coluna.

Em seguida, o código usa o método fillna() para substituir quaisquer valores ausentes na coluna “ SALARY($) ” do DataFrame com o valor armazenado na variável ampla. O parâmetro inplace é definido como True, o que significa que as alterações serão aplicadas diretamente ao DataFrame mrx_df.

Nós valorizamos o seu feedback.
+1
1
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone