首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Pandas Dataframe中使用Groupby分位数

如何在Pandas Dataframe中使用Groupby分位数
EN

Stack Overflow用户
提问于 2019-12-23 05:23:43
回答 1查看 164关注 0票数 0

我有一个数据帧df,如下所示:

代码语言:javascript
复制
    Name     Date Item  Quantity  Unit Cost  Value
0   Clay  2018 Q1   AA         9       8.97  80.73
1   Clay  2018 Q1   BB         3      12.34  37.02
2   Clay  2018 Q1   CC         4       1.40   5.60
3   Clay  2018 Q1   DD         7       0.22   1.54
4   Clay  2018 Q2   DD         1       0.45   0.45
5   Clay  2018 Q2   AA         4       7.00  28.00
6   Clay  2018 Q2   EE         2       6.40  12.80
7   Clay  2018 Q2   CC         3       2.30   6.90
8    Ray  2018 Q1   AA         8       5.30  42.40
9    Ray  2018 Q1   DD         2       1.60   3.20
10   Ray  2018 Q2   CC         1       9.00   9.00
11   Ray  2018 Q2   DD         4       8.00  32.00
12   Ray  2018 Q1   EE         4       8.00  32.00
13   Ray  2018 Q1   FF         9       4.00  36.00
14   Ray  2018 Q2   GG         1       6.50   6.50
15   Ray  2018 Q2   HH         2       9.10  18.20

我想看看最上面的四分位ItemItems by Value,用于NameDate。因此输出应该类似于top_quartile_df

代码语言:javascript
复制
    Name     Date Item  Quantity  Unit Cost  Value
0   Clay  2018 Q1   AA         9       8.97  80.73
1   Clay  2018 Q2   AA         4       7.00  28.00
2    Ray  2018 Q1   AA         8       5.30  42.40
3    Ray  2018 Q2   DD         4       8.00  32.00

我尝试过这样的方法:

代码语言:javascript
复制
df.groupby(['Name', 'Date', 'Item', 'Value']).quantile(.25)

但这给了我一个错误:

代码语言:javascript
复制
AttributeError: 'DataFrameGroupBy' object has no attribute 'quatile'

那么,如何才能获得所需的输出呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-23 06:16:33

如果我没理解错的话,您希望使用pd.qcutGroupBy获取分位数,然后取最高分位数的行:

代码语言:javascript
复制
quantiles = (
    df.groupby(['Name', 'Date'])['Value'].apply(lambda x: pd.qcut(x, 4, labels=[0, 0.25, 0.5, 1]))
)

top_quantile_df = df[quantiles.eq(1)]
代码语言:javascript
复制
    Name     Date Item  Quantity  Unit Cost  Value
0   Alex  2018 Q1   AA         9       8.97  80.73
5   Alex  2018 Q2   AA         4       7.00  28.00
8    Ray  2018 Q1   AA         8       5.30  42.40
11   Ray  2018 Q2   DD         4       8.00  32.00
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59448136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档