Python:如何按给定的百分比分组?

2024-05-29 02:14:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧df

df
    User   City     Job             Age
0    A      x    Unemployed         33
1    B      x     Student           18
2    C      x    Unemployed         27
3    D      y  Data Scientist       28
4    E      y    Unemployed         45
5    F      y     Student           18

我想groupbyCity进行统计。如果必须计算平均值,我可以做以下操作:

tmp = df.groupby(['City']).mean()

我想用一个特定的分位数来做同样的事情。有可能吗?你知道吗


Tags: 数据citydfagedatajobmeanstudent
3条回答

我相信你需要^{}

tmp = df.groupby('City')['Age'].quantile(0.4)
print (tmp)
City
x    25.2
y    26.0
Name: Age, dtype: float64

tmp = df.groupby('City')['Age'].quantile([0.25, 0.75]).unstack().add_prefix('q')
print (tmp)
      q0.25  q0.75
City              
x      22.5   30.0
y      23.0   36.5
def q1(x):
    return x.quantile(0.25)

def q2(x):
    return x.quantile(0.75)

fc = {'Age': [q1,q2]}
temp = df.groupby('City').agg(fc)
temp

       Age      
        q1    q2
City            
x     22.5  30.0
y     23.0  36.5

我正在使用describe

df.groupby('City')['Age'].describe()[['25%','75%']]
Out[542]: 
       25%   75%
City            
x     22.5  30.0
y     23.0  36.5

相关问题 更多 >

    热门问题