首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算Pandas中组的特定列的最大值

计算Pandas中组的特定列的最大值
EN

Stack Overflow用户
提问于 2020-09-26 01:36:52
回答 1查看 37关注 0票数 0

我目前有一个类似于以下内容的dataframe:

代码语言:javascript
复制
Postal Code         Risk Category           % of Restaurants

                        Low                         15
   11111                Med                         60
                        High                        25

                        Low                         30
   22222                Med                         20
                        High                        50                    

我有两个问题

如何返回高风险类别餐厅中最高百分比的邮政编码(在本例中,它将返回邮政编码2222,因为它有50%的高风险类别restaurants)

  • Is )--在这里,我可以创建一个标有“%高风险”的新列,该列显示每个邮政编码的高风险餐厅数量(对于可视化目的有用)--如下所示:

代码语言:javascript
复制
Postal Code         Risk Category           % of Restaurants.      %High Risk
    
                        Low                         15
   11111                Med                         60                 25
                        High                        25
    
                        Low                         30
   22222                Med                         20                 50
                        High                        50   
EN

回答 1

Stack Overflow用户

发布于 2020-09-26 05:51:53

Postal Code分组并得到% of Restaurants,其中Risk Category为“High”。然后在Postel Code上合并结果数据

代码语言:javascript
复制
df.merge(
    df.groupby('Postal Code')
        .apply(lambda x: x['% of Restaurants'][x['Risk Category'].eq('High')]).rename('% High Risk')
    , on='Postal Code')

退出:

代码语言:javascript
复制
   Postal Code Risk Category  % of Restaurants  % High Risk
0        11111           Low                15           25
1        11111           Med                60           25
2        11111          High                25           25
3        22222           Low                30           50
4        22222           Med                20           50
5        22222          High                50           50

绝对计数

如果% of Restaurants#(Number) of Restaurants,则可以进行类似的操作

代码语言:javascript
复制
df.merge(
    df.groupby('Postal Code')
        .apply(lambda x: x[x['Risk Category'].eq('High')]['% of Restaurants']/x['% of Restaurants'].sum() * 100).rename('% High Risk')
    , on='Postal Code')

退出:

代码语言:javascript
复制
   Postal Code Risk Category  # of Restaurants  % High Risk
0        11111           Low                15         25.0
1        11111           Med                60         25.0
2        11111          High                25         25.0
3        22222           Low                30         50.0
4        22222           Med                20         50.0
5        22222          High                50         50.0
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64073087

复制
相关文章

相似问题

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