По моему мнению, конвертировать обратно в dictionary
не обязательно, используйте Series.plot.bar
вместо:
df = pd.DataFrame(data_dict)
s = df['STATE'].value_counts()
s.plot.bar()
Решение с pyplot.bar
:
plt.bar(range(len(s)),s,tick_label=s.index)
РЕДАКТИРОВАТЬ: Вы действительно близко, только удалить to_frame
для преобразования Series
в dict
:
df = pd.DataFrame(data_dict)
s = df['STATE'].value_counts()
data = s.to_dict()
names = list(data.keys())
values = list(data.values())
plt.bar(range(len(data)),values,tick_label=names)
plt.show()
Если хотите использовать один столбец DataFrame, добавьте STATE
перед преобразованием в dict
:
df = df['STATE'].value_counts().to_frame()
#select column `STATE`
data = df['STATE'].to_dict('dict')
names = list(data.keys())
values = list(data.values())
plt.bar(range(len(data)),values,tick_label=names)
plt.show()