Вы можете использовать .value_counts
на pandas.Series
, чтобы просто узнать, сколько раз встречается каждое значение.Это упрощает создание барплота.
По умолчанию value_counts
будет игнорировать значения NaN
, поэтому мы позаботимся об этом, и, используя .sort_index()
, мы сможем гарантировать, что значения отображаются в порядке.Кажется, нам нужно использовать .to_frame()
, чтобы он отображал только один цвет для столбца (он выбирает один цвет на строку для Series
).
Пример данных
import pandas as pd
import numpy as np
# Get your plot settings
import seaborn as sns
sns.set()
np.random.seed(123)
df = pd.DataFrame({'f': np.random.randint(1,6,100)})
df = df.append(pd.DataFrame({'f': np.repeat(np.NaN,1000)}))
Код
df.f.value_counts().to_frame().sort_index().plot(kind='bar', legend=False)
