1
resposta

Erro ao executar o código

Ao executar o código fornecido:

import pandas as pd

# Criando um DataFrame de exemplo
df = pd.DataFrame({'Produto': ['Camisa', 'Calça', 'Tênis', 'Meia', 'Boné'],
                   'Tamanho': ['P', 'M', 'M', None, None],
                   'Preço': [49.99, 79.99, 199.99, 9.99, 39.99]})

# Preenchendo os valores nulos com a moda
df['Tamanho'] = df['Tamanho'].fillna(df['Tamanho'].mode()[0], inplace=True)
display(df)

o Visual Code apresentou o seguinte aviso:

FutureWarning: A value is trying to be set on a copy of a DataFrame or Series through chained assignment using an inplace method.

Para solucionar, retirei o argumento inplace:

# Preenchendo os valores nulos com a moda
df['Tamanho'] = df['Tamanho'].fillna(df['Tamanho'].mode()[0])
1 resposta

Olá, Paulo, tudo bem?

Obrigada por compartilhar a solução encontrada. Esse aviso ocorre porque o pandas está alertando sobre o risco de modificar uma cópia de um DataFrame, em vez do original, o que pode levar a comportamentos inesperados.

A solução que você aplicou está correta! Ao remover o argumento inplace=True, você está explicitamente criando um novo objeto com o resultado da operação, que é atribuído de volta à coluna Tamanho do DataFrame. Isso elimina o aviso e é uma prática recomendada para evitar problemas futuros.

Conte com o apoio do Fórum na sua jornada. Abraços e bons estudos!