python groupby 站总体百分比

import pandas as pd
import numpy as np
df = pd.DataFrame({'state': ['CA', 'WA', 'CO', 'AZ'] * 3,
                   'office_id':list(range(1,7)) * 2,
                   'sales': [np.random.randint(100000, 999999)
                             for _ in range(12)]})

s1=df.groupby(['state','office_id']).aggregate({'sales':np.sum})

ds=s1.groupby(level=0).apply(lambda x: x*100/float(x.sum()))
ds

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是关于Pythongroupby.rank()函数的介绍和演示: groupby.rank()函数是Pandas库中的一个函数,它可以对分组后的数据进行排名操作。该函数返回一个与原始数据大小相同的数据,其中每个元素表示该元素在其所在组中的排名。 函数语法如下: ```python DataFrame.rank(axis=0, method='average', numeric_only=None, na_option='keep', ascending=True, pct=False) ``` 参数说明: - axis:指定排名的方向,0表示按列排名,1表示按行排名,默认为0。 - method:指定排名的方法,可选参数包括'average'、'min'、'max'、'first'和'dense',默认为'average'。 - numeric_only:指定是否只对数值型数据进行排名,默认为None,表示对所有数据进行排名。 - na_option:指定如何处理缺失值,默认为'keep',表示保留缺失值。 - ascending:指定排名是否按升序排列,默认为True,表示按升序排列。 - pct:指定是否返回排名百分比,默认为False,表示返回排名。 下面是一个示例,假设我们有一个数据集,其中包含了学生的姓名、性别、年龄和成绩,我们想要对学生按照性别进行分组,并对每个组内的学生按照成绩进行排名,可以使用groupby.rank()函数来实现: ```python import pandas as pd # 创建数据集 data = {'name': ['Tom', 'Jack', 'Steve', 'Ricky', 'Jim', 'Tom', 'Jack', 'Steve', 'Ricky', 'Jim'], 'gender': ['M', 'M', 'M', 'M', 'M', 'F', 'F', 'F', 'F', 'F'], 'age': [25, 26, 25, 23, 30,25, 26, 25, 23, 30], 'score': [78, 85, 82, 79, 92, 88, 84, 76, 95, 91]} df = pd.DataFrame(data) # 按性别分组,并对每个组内的学生按照成绩进行排名 df['rank'] = df.groupby('gender')['score'].rank(ascending=False) print(df) ``` 输出结果如下: ``` name gender age score rank 0 Tom M 25 78 4.0 1 Jack M 26 85 2.0 2 Steve M 25 82 3.0 3 Ricky M 23 79 4.0 4 Jim M 30 92 1.0 5 Tom F 25 88 2.0 6 Jack F 26 84 3.0 7 Steve F 25 76 4.0 8 Ricky F 23 95 1.0 9 Jim F 30 91 2.0 ``` 可以看到,我们成功地对学生按照性别进行了分组,并对每个组内的学生按照成绩进行了排名。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值