python – Pandas系列的直方图值

我在Python Pandas系列中有一些值(类型:pandas.core.series.Series)

In [1]: series = pd.Series([0.0,950.0,-70.0,812.0,0.0,-90.0,0.0,0.0,-90.0,0.0,-64.0,208.0,0.0,-90.0,0.0,-80.0,0.0,0.0,-80.0,-48.0,840.0,-100.0,190.0,130.0,-100.0,-100.0,0.0,-50.0,0.0,-100.0,-100.0,0.0,-90.0,0.0,-90.0,-90.0,63.0,-90.0,0.0,0.0,-90.0,-80.0,0.0,])

In [2]: series.min()
Out[2]: -100.0

In [3]: series.max()
Out[3]: 950.0

我想得到直方图的值(不需要绘制直方图)…我只需要得到每个间隔的频率。

让我们说,我的间隔从[-200; -150]〜[950; 1000]

所以下界是

lwb = range(-200,1000,50)

和上限

upb = range(-150,1050,50)

我不知道如何获取频率(每个间隔内的值的数量)现在…
我相信定义lwb和upb不是必要的…但我不知道什么
函数我应该使用来执行这个!
(在Pandas doc中潜水后,我认为切割功能可以帮助我,因为它是一个离散化问题…但我不明白如何使用它)

在能够做到这一点后,我将看看显示直方图的方式(但这是另一个问题)

你只需要使用numpy的直方图函数:

import numpy as np
count, division = np.histogram(series)

其中division是您的箱柜的自动计算的边框,count是每个bin内的人口。

如果你需要修正一定数量的bin,你可以使用参数bin并指定一些bin,或者直接给出它们之间的边界。

count, division = np.histogram(series, bins = [-201,-149,949,1001])

绘制结果你可以使用matplotlib函数hist,但如果你是在pandas工作每个系列都有自己的hist函数的句柄,你可以给它选择的binning:

series.hist(bins=division)
http://stackoverflow.com/questions/13129618/histogram-values-of-a-pandas-series

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:python – Pandas系列的直方图值