A limpeza de dados, sem incerteza, leva muito tempo na ciência de dados, e a falta de dados é um dos desafios que você enfrentará com frequência. pandas é uma valiosa instrumento de manipulação de dados Python que ajuda a emendar valores ausentes em seu conjunto de dados, entre outras coisas.
Você pode emendar dados ausentes descartando ou preenchendo-os com outros valores. Neste item, explicaremos e exploraremos as diferentes maneiras de preencher dados ausentes usando pandas.
1. Use o método fillna():
O preencher() A função itera em seu conjunto de dados e preenche todas as linhas nulas com um valor especificado. Ele aceita alguns argumentos opcionais – tome nota dos seguintes:
Valor: leste é o valor que você deseja inserir nas linhas ausentes.
Método: permite que você preencha os valores ausentes para frente ou para trás. Ele aceita um ‘bencher’ ou ‘preencher’ parâmetro.
No lugar: aceita uma instrução condicional. Se True, modifica o DataFrame permanentemente. Caso contrário, não.
Antes de começarmos, certifique-se de instalar pandas em seu envolvente virtual Python usando pip no seu terminal:
pip install pandas
Em seguida, dentro do script Python, criaremos um DataFrame de prática e inseriremos valores nulos (Nan) em algumas linhas:
import pandas
df = pandas.DataFrame({'A' :[0, 3, None, 10, 3, None],
'B' : [None, None, 7.13, 13.82, 7, 7],
'C' : [None, "Pandas", None, "Pandas", "Python", "JavaScript"]})
Agora, confira porquê você pode preencher esses valores ausentes usando os vários métodos disponíveis em pandas.
Preencher valores ausentes com média, mediana ou voga
Nascente método envolve a substituição de valores omissos por médias computadas. O preenchimento de dados ausentes com um valor médio ou mediano é aplicável quando as colunas envolvidas têm tipos de dados inteiros ou flutuantes.
Você também pode preencher os dados ausentes com o valor da voga, que é o valor mais frequente. Isso também se aplica a inteiros ou floats. Mas é mais prático quando as colunas em questão contêm strings.
Veja porquê inserir a média e a mediana nas linhas ausentes no DataFrame que você criou anteriormente:
#To insert the mean value of each column into its missing rows:
df.fillna(df.mean().round(1), inplace=True)
#For median:
df.fillna(df.median().round(1), inplace=True)
print(df)
Inserir o valor modal porquê você fez para a média e a mediana supra não tomada o DataFrame inteiro. Mas você pode inseri-lo em uma pilar específica, digamos, pilar C:
df['C'].fillna(df['C'].mode()[0], inplace=True)
Com isso dito, ainda é provável inserir o valor modal de cada pilar em suas linhas ausentes de uma só vez usando um loop for:
for i in df.columns:
df[i].fillna(df[i].mode()[0], inplace=True)
print(df)
Se você quiser ser específico da pilar ao inserir a média, mediana ou voga:
df.fillna({"A":df['A'].mean(),
"B": df['B'].median(),
"C": df['C'].mode()[0]},
inplace=True)
print(df)
Preencha linhas nulas com valores usando ffill
Isso envolve especificar o método de preenchimento dentro porquê o preencher() função. Nascente método preenche cada risca ausente com o valor da risca mais próxima supra dela.
Você também pode chamá-lo de preenchimento antecipado:
df.fillna(method='ffill', inplace=True)
Preencher linhas ausentes com valores usando bfill
Cá, você substituirá o preencher método mencionado supra com encher. Ele preenche cada risca ausente no DataFrame com o valor mais próximo inferior dele.
Nascente é chamado de preenchimento para trás:
df.fillna(method='bfill', inplace=True)
2. O método replace()
Você pode substituir o Nan valores em uma pilar específica com a média, mediana, voga ou qualquer outro valor.
Veja porquê isso funciona substituindo as linhas nulas em uma pilar nomeada por sua média, mediana ou modo:
import pandas
import numpy #this requires that you've previously installed numpy
#Replace the null values with the mean:
df['A'].replace([numpy.nan], df[A].mean(), inplace=True)
#Replace column A with the median:
df['B'].replace([numpy.nan], df[B].median(), inplace=True)
#Use the modal value for column C:
df['C'].replace([numpy.nan], df['C'].mode()[0], inplace=True)
print(df)
3. Preencha os dados ausentes com interpolar()
O interpolar() A função usa valores existentes no DataFrame para prezar as linhas ausentes.
Execute o seguinte código para ver porquê isso funciona:
#Interpolate backwardly across the column:
df.interpolate(method ='linear', limit_direction ='backward', inplace=True)
#Interpolate in forward order across the column:
df.interpolate(method ='linear', limit_direction ='forward', inplace=True)
Lide com as linhas ausentes com zelo
Embora tenhamos considerado exclusivamente preencher dados ausentes com valores padrão, porquê médias, voga e outros métodos, existem outras técnicas para emendar valores ausentes. Os cientistas de dados, por exemplo, às vezes removem essas linhas ausentes, dependendo do caso.
Outrossim, é importante pensar criticamente sobre sua estratégia antes de usá-la. Caso contrário, você pode obter análises indesejáveis ou resultados de previsão. Algumas estratégias iniciais de visualização de dados podem ajudar.
Leia a seguir
Sobre o responsável