Como imputar valores ausentes em pandas (incluindo um exemplo)
Você pode usar a seguinte sintaxe básica para imputar valores ausentes em um DataFrame do pandas:
df[' column_name '] = df[' column_name ']. interpolate ()
O exemplo a seguir mostra como usar essa sintaxe na prática.
Exemplo: interpolar valores ausentes em Pandas
Digamos que temos o seguinte DataFrame do pandas que mostra o total de vendas realizadas por uma loja durante 15 dias consecutivos:
import pandas as pd import numpy as np #createDataFrame df = pd. DataFrame ({' day ': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], ' sales ': [3, 6, 8, 10, 14, 17, 20, np.nan, np.nan, np.nan, np.nan, 35, 39, 44, 49]}) #view DataFrame print (df) day sales 0 1 3.0 1 2 6.0 2 3 8.0 3 4 10.0 4 5 14.0 5 6 17.0 6 7 20.0 7 8 NaN 8 9 NaN 9 10 NaN 10 11 NaN 11 12 35.0 12 13 39.0 13 14 44.0 14 15 49.0
Observe que faltam números de vendas de quatro dias no quadro de dados.
Se criássemos um gráfico de linhas simples para visualizar as vendas ao longo do tempo, seria assim:
#create line chart to visualize sales df[' sales ']. plot ()
Para preencher os valores ausentes, podemos usar a função interpolate() da seguinte forma:
#interpolate missing values in 'sales' column df[' sales '] = df[' sales ']. interpolate () #view DataFrame print (df) day sales 0 1 3.0 1 2 6.0 2 3 8.0 3 4 10.0 4 5 14.0 5 6 17.0 6 7 20.0 7 8 23.0 8 9 26.0 9 10 29.0 10 11 32.0 11 12 35.0 12 13 39.0 13 14 44.0 14 15 49.0
Observe que cada um dos valores ausentes foi substituído.
Se criarmos outro gráfico de linhas para visualizar o quadro de dados atualizado, seria assim:
#create line chart to visualize sales df[' sales ']. plot ()
Observe que os valores escolhidos pela função interpolate() parecem corresponder muito bem à tendência dos dados.
Nota : Você pode encontrar a documentação completa para a função interpolate() aqui .
Recursos adicionais
Os tutoriais a seguir fornecem informações adicionais sobre como lidar com valores ausentes em pandas:
Como contar valores faltantes em pandas
Como substituir valores NaN por uma string no Pandas
Como substituir valores NaN por zero no Pandas