Qual o comando pra fazer com que no sns.barplot apareça so os top values? como os 5 primeiros com maior valor, pro gráfico ficar mais condensado.
Qual o comando pra fazer com que no sns.barplot apareça so os top values? como os 5 primeiros com maior valor, pro gráfico ficar mais condensado.
Oii Guilherme, tudo bem com você?
Nesse caso, você pode usar o método sort_values
para ordenar seu DataFrame em ordem decrescente e depois utilizar o método iloc
para selecionar apenas as primeiras linhas. Por exemplo:
Suponha que temos o seguinte DataFrame:
import pandas as pd
df = pd.DataFrame({'Nome': ['Ary', 'Cátia', 'Denis', 'Beto', 'Bruna', 'Dara'],
'Idade': [5, 27, 15, 16, 19, 8]},
columns = ['Nome', 'Idade'])
df
Resultado:
Nome | Idade | |
---|---|---|
0 | Ary | 5 |
1 | Cátia | 27 |
2 | Denis | 15 |
3 | Beto | 16 |
4 | Bruna | 19 |
5 | Dara | 8 |
Agora podemos utilizar o método sort_values
com o parâmetro ascending = False
para ordenar a coluna "Idade" em ordem decrescente:
df.sort_values(by = 'Idade', ascending = False, inplace = True)
df
Resultado:
Nome | Idade | |
---|---|---|
1 | Cátia | 27 |
4 | Bruna | 19 |
3 | Beto | 16 |
2 | Denis | 15 |
5 | Dara | 8 |
0 | Ary | 5 |
Feito isso, para selecionarmos apenas as primeiras 4 maiores idades, podemos utilizar o método iloc
da seguinte maneira:
df.iloc[0:4]
Resultado:
Nome | Idade | |
---|---|---|
1 | Cátia | 27 |
4 | Bruna | 19 |
3 | Beto | 16 |
2 | Denis | 15 |
Com isso podemos utilizar esse DataFrame com essa seleção para fazer um barplot
:
import seaborn as sns
sns.barplot(x = "Nome", y = "Idade", data = df.iloc[0:4])
Resultado:
Vale ressaltar que essa é apenas uma forma de fazer o que você propôs, mas com certeza existem outras que podem trazer o mesmo resultado :)
Espero ter ajudado. Qualquer dúvida estou por aqui ^^