我试着用它们的概率来索引数据(用一个简单的直方图来估计)。目标是在序列中选择概率小于某个阈值的项。
我有一系列整数值,例如:

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
如果我能做到这一点,我该如何选择频率大于某个值的结果?
谢谢。

最佳答案

是,使用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

关于python - Pandas :通过直方图结果索引数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10145025/

10-13 03:09