首页 > 解决方案 > 如何将数据框转换为字典变量并从中制作条形图

问题描述

我需要将数据框查询转换为字典变量,但它将状态和出现次数保存为一个变量。我需要将它们分开,以便从中绘制条形图我做错了吗?

用于 dict 的数据框代码

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

标签: pythonpandasdataframebar-chart

解决方案


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转换Seriesdict

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

STATE如果想在转换为之前使用一列 DataFrame 添加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()

推荐阅读