1
resposta

A função calcular_wcss da erro na aplicação do df_recencia

Ao executar a linha: soma_quadrados = calcular_wcss(df_recencia)

Da esse Output repetidas vezes: :8: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_indexer] = value instead

Se continuar executando o numero de clusters ótimo da 10, o que também segue errado.

O que pode ter acontecido?

1 resposta

Olá Natal, tudo bem? Espero que sim!

Desculpe pela demora em retornar.

O SettingwithCopyWarning ocorre quando uma alteração em um DataFrame está sendo passada para outro DataFrame, devido à referência de duas variáveis estarem salvas em um mesmo DataFrame original.

Na criação da variável df_recencia, foi criada uma visualização do DataFrame original e não uma cópia independente. Logo, ao alterar df_recencia, o pandas irá alterar também o DataFrame de onde se originou e vice-versa. Isso pode ocasionar certos problemas.

Para evitar problemas, utilize o .loc ou .copy() na criação da variável df_recencia para que esse dataframe seja independente dos seus dados originais.

Você pode escolher uma das duas formas:

df_recencia = df_usuario.loc[:, ['Recencia']]
df_recencia = df_usuario[['Recencia']].copy()

Caso queira saber mais a respeito, existem dois tópicos nos quais a Millena e o Afonso explicam sobre o SettingWithCopyWarning:

Espero que tenha conseguido ajudar.

Estou à disposição. Bons estudos!