【问题标题】:Pandas: index data by a histogram resultPandas:按直方图结果索引数据
【发布时间】:2012-04-26 01:33:55
【问题描述】:

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

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

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
  • 如果我设法做到这一点,如何只选择频率大于某个值的结果?

谢谢。

【问题讨论】:

    标签: python statistics pandas


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-25
      • 1970-01-01
      • 2019-07-22
      • 2012-12-01
      • 1970-01-01
      • 2019-01-07
      • 1970-01-01
      • 2014-04-24
      相关资源
      最近更新 更多