A limpeza de dados, sem dúvida, 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 ferramenta de manipulação de dados Python que ajuda a corrigir valores ausentes em seu conjunto de dados, entre outras coisas.
Você pode corrigir dados ausentes descartando ou preenchendo-os com outros valores. Neste artigo, 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: este é 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
Ambiente virtual Python usando pip no seu terminal:pip instalar pandas
Em seguida, dentro do script Python, criaremos um DataFrame de prática e inseriremos valores nulos (Nan) em algumas linhas:
importar pandas
df = pandas. DataFrame({'A' :[0, 3, Nenhum, 10, 3, Nenhum],
'B': [Nenhum, Nenhum, 7,13, 13,82, 7, 7],
'C': [Nenhum, "Pandas", Nenhum, "Pandas", "Python", "JavaScript"]})
Relacionado:Como importar dados do Excel em scripts Python usando Pandas
Agora, confira como você pode preencher esses valores ausentes usando os vários métodos disponíveis em pandas.
Este 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 moda, 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 como inserir a média e a mediana nas linhas ausentes no DataFrame que você criou anteriormente:
#Para inserir o valor médio de cada coluna em suas linhas ausentes:
df.fillna (df.mean().round (1), inplace=True)
#Para mediana:
df.fillna (df.median().round (1), inplace=True)
imprimir (df)
Inserir o valor modal como você fez para a média e a mediana acima não captura o DataFrame inteiro. Mas você pode inseri-lo em uma coluna específica, digamos, coluna C:
df['C'].fillna (df['C'].mode()[0], inplace=True)
Com isso dito, ainda é possível inserir o valor modal de cada coluna nas linhas ausentes de uma só vez usando um laço for:
para i em df.columns:
df[i].fillna (df[i].mode()[0], inplace=True)
imprimir (df)
Se você quiser ser específico da coluna ao inserir a média, mediana ou moda:
df.fillna({"A":df['A'].mean(),
"B": df['B'].median(),
"C": df['C'].mode()[0]},
inplace=True)
imprimir (df)
Preencha linhas nulas com valores usando ffill
Isso envolve especificar o método de preenchimento dentro como o preencher() função. Este método preenche cada linha ausente com o valor da linha mais próxima acima dela.
Você também pode chamá-lo de preenchimento antecipado:
df.fillna (método='ffill', inplace=True)
Preencher linhas ausentes com valores usando bfill
Aqui, você substituirá o preencher método mencionado acima com encher. Ele preenche cada linha ausente no DataFrame com o valor mais próximo abaixo dele.
Este é chamado de preenchimento para trás:
df.fillna (método='bfill', inplace=True)
2. O método replace()
Você pode substituir o Nan valores em uma coluna específica com a média, mediana, moda ou qualquer outro valor.
Relacionado:Comandos pandas para manipular DataFrames
Veja como isso funciona substituindo as linhas nulas em uma coluna nomeada por sua média, mediana ou modo:
importar pandas
importar numpy #isto requer que você tenha instalado o numpy anteriormente
#Substitui os valores nulos pela média:
df['A'].replace([numpy.nan], df[A].mean(), inplace=True)
#Substitua a coluna A pela mediana:
df['B'].replace([numpy.nan], df[B].median(), inplace=True)
#Use o valor modal para a coluna C:
df['C'].replace([numpy.nan], df['C'].mode()[0], inplace=True)
imprimir (df)
3. Preencher dados ausentes com interpolar()
O interpolar() A função usa valores existentes no DataFrame para estimar as linhas ausentes.
Execute o seguinte código para ver como isso funciona:
#Interpolar para trás na coluna:
df.interpolate (method ='linear', limit_direction ='backward', inplace=True)
#Interpolar em ordem direta na coluna:
df.interpolate (método ='linear', limit_direction ='forward', inplace=True)
Lide com as linhas ausentes com cuidado
Embora tenhamos considerado apenas preencher dados ausentes com valores padrão, como médias, moda e outros métodos, existem outras técnicas para corrigir valores ausentes. Os cientistas de dados, por exemplo, às vezes removem essas linhas ausentes, dependendo do caso.
Além disso, é essencial 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.
Exiba seus dados com gráficos do Jupyter Notebook.
Leia a seguir
- Programação
- Pitão
- Programação
- base de dados

Idowu é apaixonado por qualquer tecnologia inteligente e produtividade. Em seu tempo livre, ele brinca com a codificação e muda para o tabuleiro de xadrez quando está entediado, mas também adora fugir da rotina de vez em quando. Sua paixão por mostrar às pessoas o caminho da tecnologia moderna o motiva a escrever mais.
Assine a nossa newsletter
Junte-se à nossa newsletter para dicas de tecnologia, análises, e-books gratuitos e ofertas exclusivas!
Clique aqui para assinar