熊猫 - 两列直方图?

mno*_*tka 2 python plot histogram pandas

我有这些数据:

data = pd.DataFrame().from_dict([r for r in response])
print data

     _id  total
0    213      1
1    194      3
2    205      156
...
Run Code Online (Sandbox Code Playgroud)

现在,如果我打电话:

data.hist()
Run Code Online (Sandbox Code Playgroud)

我会得到两个单独的直方图,每列一个.这不是我想要的.我想要的是使用这两列制作的单个直方图,其中一列被解释为值,另一列被解释为该值的出现次数.我该怎么做才能生成这样的直方图?

我试过了:

data.hist(column="_id", by="total")
Run Code Online (Sandbox Code Playgroud)

但这会生成更多(空)直方图和错误消息.

der*_*men 8

由于您已经计算了 bin 频率(total列),因此只需使用pandas.DataFrame.plot

data.plot( x='_id', y='total', kind='hist')
Run Code Online (Sandbox Code Playgroud)


Ami*_*ory 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)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述