我们说我有一个熊猫系列:
>> t.head()
Timestamp
2014-02-01 05:43:26 35.592899
2014-02-01 06:18:32 33.898003
2014-02-01 10:04:04 33.898003
2014-02-01 10:36:30 35.592899
2014-02-01 12:20:32 40.677601
我想要的是一个带有我可以设置的箱子的频率表。这听起来很容易,但我最接近的是通过matplotlib
In [8]: fd = plt.hist(t, bins=range(20,50))
In [9]: fd
Out[9]:
(array([ 0, 0, 1, 0, 0, 3, 0, 3, 1, 0, 8, 0, 11, 20, 0, 18, 0,
19, 6, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0]),
array([20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49]),
<a list of 29 Patch objects>)
但当然实际上绘制了直方图。我可以找到关于如何绘制直方图的建议,而不是如何简单地形成频率分布;从上面我有&#39;箱子&#39;如fd [1](或至少是它们的下界)和值为fd [0]。
我想要自己的频率分布,以便以后形成一个具有多个系列分布的数据帧(所有具有相同的分档)。我觉得必须有一种方法可以在没有matplotlib的情况下做到这一点?
更新:期望的结果:
{'Station1': 20 0
21 0
22 1
23 0
24 0
25 3
26 0
27 3
28 1
29 0
30 8
31 0
32 11
33 20
34 0
35 18
36 0
37 19
38 6
39 0
40 2
41 0
42 0
43 0
44 0
45 0
46 0
47 0
48 0
dtype: int32}
这些是风速:一旦我从许多不同的会议站获得类似的数据,我希望能够形成一个数据框,其中作为索引的列和作为频率的列。 distrs。
VALUE_COUNTS()
我确实考虑过价值计数,它给了我这个:
33.898003 20
37.287800 19
35.592899 18
32.203102 11
30.508202 8
38.982700 6
27.118401 3
25.423500 3
40.677601 2
28.813301 1
22.033701 1
dtype: int64
数据本身显然是A / D转换的:假设下一个会议站有不同的索引,例如33.898006而不是33.898003,那么我将获得一个新的&#39; bin&#39;只是为了那个 - 我想保证每个数据集的箱子是相同的。