Как превратить фрейм данных в словарную переменную и сделать из нее диаграмму - PullRequest
1 голос
/ 08 апреля 2019

Мне нужно преобразовать запрос фрейма данных в словарную переменную, но он сохраняет STATE и вхождения как одну переменную.Мне нужно, чтобы они были отделены друг от друга, чтобы я мог построить на нем гистограмму. Неправильно ли я это делаю?

Код для кадра данных, чтобы диктовать

df = pd.DataFrame(data_dict)
df = df['xyz'].value_counts().to_frame()
df.to_dict('dict')
print (dict)

Код, который я хочу использовать для построения гистограммы

data = (dict)
names = list(data.keys())
values = list(data.values())
plt.bar(range(len(data)),values,tick_label=names)
plt.show()

1 Ответ

0 голосов
/ 08 апреля 2019

По моему мнению, конвертировать обратно в 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()
...