【问题标题】:pandas pivot_table percentile / quantilepandas pivot_table 百分位数/分位数
【发布时间】:2014-12-04 19:20:25
【问题描述】:

是否可以在 pandas 数据透视表中使用百分位数或分位数作为 aggfunc?我试过 numpy.percentile 和 pandas quantile 都没有成功。

【问题讨论】:

    标签: python numpy pandas


    【解决方案1】:

    虚拟数据:

    In [135]: df = pd.DataFrame([['a',2,3],
                                 ['a',5,6],
                                 ['a',7,8], 
                                 ['b',9,10], 
                                 ['b',11,12], 
                                 ['b',13,14]], columns=list('abc'))
    

    np.percentile 似乎可以正常工作?

    In [140]: df.pivot_table(columns='a', aggfunc=lambda x: np.percentile(x, 50))
    Out[140]: 
    a  a   b
    b  5  11
    c  6  12
    

    【讨论】:

    • 非常感谢克里斯布!我试图直接使用它而不将其放入 lambda 函数中。
    • 直到今天,这还是一个很好的解决方案。上述解决方案不再有效(但当我使用“平均”、“最大”等时,它确实有效)。任何想法将不胜感激!谢谢!
    • 你用的是什么版本? IIRC 一些 numpy 的东西在 0.18.0 中被破坏,但在 0.18.1 中被修复。
    猜你喜欢
    • 2020-10-07
    • 1970-01-01
    • 1970-01-01
    • 2020-05-28
    • 2014-03-12
    • 2021-02-26
    • 2022-01-22
    • 2013-07-08
    • 2020-01-27
    相关资源
    最近更新 更多