如何将数据框变成字典变量并从中制作条形图

时间:2019-04-08 04:04:56

标签: python pandas dataframe bar-chart

我需要将数据帧查询转换为字典变量,但是它将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()

1 个答案:

答案 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()