我有这些数据:
info.id
现在,如果我打电话:
data = pd.DataFrame().from_dict([r for r in response])
print data
_id total
0 213 1
1 194 3
2 205 156
...
我将获得两个单独的直方图,每列一个。这不是我想要的。我想要的是使用这两列制作的单个直方图,其中一列被解释为值,另一列被解释为该值的出现次数。我该怎么做才能生成这样的直方图?
我试过了:
data.hist()
但这会生成更多(空)直方图,并显示错误消息。
答案 0 :(得分:5)
您可以随时放到较低级matplotlib.hist
:
from matplotlib.pyplot import hist
df = pd.DataFrame({
'_id': np.random.randn(100),
'total': 100 * np.random.rand()
})
hist(df._id, weights=df.total)
答案 1 :(得分:3)
由于您已经计算了bin频率(total
列),因此只需使用pandas.DataFrame.plot
data.plot( x='_id', y='total', kind='hist')