Pandas: индексные данные по результату гистограммы

Я пытаюсь индексировать данные по их вероятности (оценивается с помощью простой гистограммы). Цель состоит в том, чтобы выбрать элементы в серии с вероятностью, которая меньше порогового значения.

У меня есть ряд целых значений, например:

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?
  • Если мне удастся это сделать, как мне выбрать только результаты с частотой больше некоторого значения?

Спасибо.

1 ответ

Да, используйте метод map Series:

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

вы можете:

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

licensed under cc by-sa 3.0 with attribution.