我需要将数据帧查询转换为字典变量,但是它将STATE和Occurrences保存为一个变量。我需要将它们分开,以便可以从中绘制条形图 我做错了吗?
数据框要编码的代码
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()
答案 0 :(得分:0)
我认为没有必要转换回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()