Pandas 大熊猫序列的频率分布
假设我有一个熊猫系列:Pandas 大熊猫序列的频率分布,pandas,Pandas,假设我有一个熊猫系列: >> 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 我想要的是一个频率表,里面有我可以设置的存储箱。这听起来很简单,但我最近接触到的是ma
>> 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>)
这些是风速:一旦我从多个不同的气象站获得了类似的数据,我希望能够形成一个数据框架,其中以箱柜为索引,以列为频率分布
值_计数()
我确实考虑过价值计数,它给了我这样的信息:
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,然后,我会为这一个设置一个新的“bin”-我想保证每组数据的bin都是相同的。我真的不明白您在追求什么,但您是否尝试过
pd.value\u counts
?不确定这是否是最好的方法-t.astype('int').value\u counts().sort\u index().ix[20:50]@user1827356:这非常接近:通过astype(int)
有效地完成了“binning”。现在肯定可以了!谢谢。pd.cut
也常用于此(您可以指定您的箱子),请参见此处:
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