Pandas:按直方图结果为数据添加索引

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()

现在我已经将每个结果的频率按结果进行了索引,并且有一系列的结果。现在我有两个问题:
  • 是否有一种方法可以通过freq定义的结果/频率映射来索引series
  • 如果我成功做到这一点,如何选择仅具有大于某个值的频率的结果?
谢谢。
1个回答

3

是的,使用 map 系列方法:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接