【问题标题】:Decile Pandas DataFrame on column列上的 Decile Pandas DataFrame
【发布时间】:2015-09-29 16:06:48
【问题描述】:

我在 Pandas 中有一个数据框,我想在特定列上进行十分位数,然后获取每个十分位数的平均值。

这是数据集:

我希望对 res 列进行十分位数并保持 ticker 列以及其余数据的不完整性,并获取每个十分位数的平均值。

我尝试使用pd.qcut(beta.res,10),但无法使用其中的结果重新组织数据。

【问题讨论】:

    标签: python sorting python-3.x statistics dataframe


    【解决方案1】:

    https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.quantile.html

    df = pd.DataFrame(np.array([[1, 1], [2, 10], [3, 100], [4, 100]]),
                      columns=['a', 'b'])
    
    df.quantile(.1)
    a    1.3
    b    3.7
    Name: 0.1, dtype: float64
    
    df.quantile([.1, .5])
           a     b
    0.1  1.3   3.7
    0.5  2.5  55.0
    

    【讨论】:

      【解决方案2】:

      IIUC,您可以使用 qcut 返回的事实,您可以将其用于 groupby,所以它只是这样的:

       df.groupby(pd.qcut(beta.res,10)).mean()
      

      【讨论】:

        猜你喜欢
        • 2018-05-05
        • 2021-12-06
        • 2020-06-15
        • 2016-06-15
        • 2022-07-28
        • 2021-10-06
        • 2017-09-16
        • 2013-11-09
        • 2021-05-07
        相关资源
        最近更新 更多