webentwicklung-frage-antwort-db.com.de

Seaborn.countplot: Kategorien nach Anzahl sortieren?

Ich weiß, dass seaborn.countplot das Attribut order besitzt, mit dem die Reihenfolge der Kategorien festgelegt werden kann. Ich möchte jedoch, dass die Kategorien in absteigender Reihenfolge angeordnet werden. Ich weiß, dass ich dies durch manuelles Berechnen der Anzahl erreichen kann (mithilfe einer groupby-Operation am ursprünglichen Datenrahmen usw.), aber ich frage mich, ob diese Funktionalität mit seaborn.countplot vorhanden ist. Überraschenderweise kann ich nirgendwo eine Antwort auf diese Frage finden.

11
nfernand

Diese Funktionalität ist, soweit ich weiß, nicht in seaborn.countplot integriert. Der Parameter order akzeptiert nur eine Liste von Zeichenfolgen für die Kategorien und überlässt dem Benutzer die Bestelllogik. 

Mit value_counts() ist dies nicht schwer, vorausgesetzt, Sie haben einen DataFrame. Zum Beispiel, 

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

sns.set(style='darkgrid')

titanic = sns.load_dataset('titanic')
sns.countplot(x = 'class',
              data = titanic,
              order = titanic['class'].value_counts().index)
plt.show()

 enter image description here

35
miradulo

Meistens ist ein Seaborn Countplot nicht wirklich notwendig. Nur Grundstück mit Pandas Bar Plot:

import seaborn as sns; sns.set(style='darkgrid')
import matplotlib.pyplot as plt

df = sns.load_dataset('titanic')

df['class'].value_counts().plot(kind="bar")

plt.show()