【问题标题】:determine the quantile a value falls in, in a Pandas data frame在 Pandas 数据框中确定值所在的分位数
【发布时间】:2015-03-02 23:42:09
【问题描述】:

我有一个带有几列的 pandas 数据框。对于每一列,我想计算某些百分位数。然后,我想用每个观察值所在的百分位数替换我的数据框。

import pandas as pd
M = np.random.uniform(0, 100, (10, 6))
df = pd.DataFrame(M, columns=['c%i'%i for i in range(6)])

>>> df[:2]
              c0         c1         c2         c3         c4         c5
    0  24.883165   2.299054  11.002427  98.711018  39.042343  50.408190
    1  42.099085  78.028507  25.099002  39.099628  38.687483  15.794404

df.quantile([.1, .5, .9])

                    c0         c1         c2         c3         c4         c5
        0.1  21.418274   7.094343  10.904711  25.014356  15.958873  21.984237
        0.5  41.793102  36.973471  29.031637  64.246471  41.136274  42.408574
        0.9  75.724554  62.274133  86.604768  93.690257  73.757992  89.365606

例如,在第 0 行,c0=24.883。 24.883

【问题讨论】:

    标签: python pandas quantile


    【解决方案1】:

    qcut()怎么样:

    import pandas as pd
    import numpy as np
    M = np.random.uniform(0, 100, (10, 6))
    df = pd.DataFrame(M, columns=['c%i'%i for i in range(6)])
    
    bins = [0.0, 0.1, 0.5, 0.9, 1.0]
    df.apply(lambda s:pd.qcut(s, bins, bins[1:]).astype(float))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-05
      • 1970-01-01
      • 2018-02-27
      • 2019-04-15
      • 1970-01-01
      • 2015-05-12
      • 1970-01-01
      • 2017-05-28
      相关资源
      最近更新 更多