3

我正在尝试按概率(用简单的直方图估计)来索引数据。目标是在系列中选择概率小于某个阈值的项目。

我有一系列整数值,例如:

import pandas as pnd
import numpy  as np

series = pnd.Series(np.random.poisson(5, size = 100))

然后我像这样计算他们的直方图:

tmp  = {"series" : series, "count" : np.ones(len(series))}
hist = pnd.DataFrame(tmp).groupby("series").sum()
freq = hist / hist.sum()

所以现在我有了结果索引的每个结果的频率,以及一系列结果。我现在有两个问题:

  • 有没有办法series通过定义的结果/频率的映射来索引freq
  • 如果我设法做到这一点,我如何只选择频率大于某个值的结果?

谢谢。

4

1 回答 1

3

是的,使用mapSeries 方法:

In [16]: series.map(freq['count'])
Out[16]: 
0     0.12
1     0.06
2     0.20
3     0.11
4     0.02
5     0.13
6     0.14
7     0.11
8     0.12
9     0.16
10    0.20
<snip>

然后你可以这样做:

In [22]: series[series.map(freq['count']) > 0.16]
Out[22]: 
2     4
10    4
11    4
22    4
27    4
31    4
34    4
56    4
64    4
71    4
73    4
76    4
77    4
79    4
80    4
86    4
88    4
89    4
91    4
99    4
于 2012-04-13T22:27:10.817 回答