Oi Alison!
O problema ocorre porque você reimportou o dataset (df = pd.read_csv('/content/imigrantes_canada.csv')
) sem manter o índice "País"
. Com isso, o índice do DataFrame voltou ao padrão numérico (inteiros sequenciais), o que impede que os nomes dos países apareçam corretamente no gráfico.
Note que a instrutora importa o dataset apenas uma vez, no início do notebook, e logo em seguida define "País"
como índice com:
df.set_index('País', inplace=True)
Isso garante que o DataFrame seja manipulado corretamente ao longo do código.
Como corrigir?
Antes de ordenar os dados, é essencial definir o índice corretamente. Para isso, insira "País"
como índice antes de fazer a ordenação:
import seaborn as sns
sns.set_theme()
# Definir "País" como índice ANTES de ordenar
df.set_index("País", inplace=True)
top_10 = df.sort_values('Total', ascending=False).head(10)
# Agora o índice contém os países corretamente
sns.barplot(data=top_10, x=top_10.index, y='Total')
✨ Dica
Notei que você importa o dataset várias vezes e reutiliza o mesmo nome de variável (df
). Isso não é necessário. Uma vez carregado o dataset e as bibliotecas, você pode utilizá-los em todo o notebook sem precisar recarregá-los.
Espero ter ajudado.
Qualquer dúvida, não hesite em compartilhar no fórum.
Abraços!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado