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'])
dfResultado:
| 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)
dfResultado:
| 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 ^^