【问题标题】:Dataframe Group by: how do I find value in one column for a quantile in a second columnDataframe Group by:如何在一列中找到第二列中分位数的值
【发布时间】:2022-11-30 23:08:28
【问题描述】:

我有一个下面显示的数据框,其中包含扇区、持续时间和成本。

例如,这是数据帧的开始

Sector Duration Cost
Construction 23.300000 3.5382
Construction 24.333333 3.0774
Health 43.600000 1.0830
Health 23.300000 1.6543
Sports 33.466667 7.2511

我想按部门分组,该列显示基于可变成本五分位数的持续时间。 就像是

我尝试了以下

def q1(x):  
return x.quantile(0.2)
def q2(x):
return x.quantile(0.40)
def q3(x):
return x.quantile(0.60)
def q4(x):
return x.quantile(0.8)

vals = {"Duration": [q1, q2, q3, q4, q5]}
df_1 = proy.groupby("Sector").agg(vals)

但它得到的是持续时间的五分位数,而不是基于成本的五分位数的持续时间。

【问题讨论】:

标签: python pandas group-by quantile


【解决方案1】:

IIUC,您正在将 Duration 列传递给聚合 ,通过右栏,你会没事的:

vals = {"Cost": [q1, q2, q3, q4, q5]}

输出 :

                 Cost                                   
                   q1       q2       q3       q4      q5
Sector                                                  
Construction  3.16956  3.26172  3.35388  3.44604  3.5382
Health        1.19726  1.31152  1.42578  1.54004  1.6543
Sports        7.25110  7.25110  7.25110  7.25110  7.2511

【讨论】:

    猜你喜欢
    • 2019-07-28
    • 2021-11-11
    • 2017-09-27
    • 2021-10-22
    • 1970-01-01
    • 2013-03-01
    • 1970-01-01
    • 2015-08-20
    • 2021-05-04
    相关资源
    最近更新 更多