Python数据分析-pandas的rank函数助你轻松实现排序功能

 更多文章,可通过微信公众号:Excel办公小技巧  查看

   用过sql中的row_number函数,习惯了他的方便,那么在pandas处理数据时,有没有类似的函数用来排序呢,当然也有,比如rank函数。

rank(axis=0, method='average', numeric_only=None,      na_option='keep', ascending=True, pct=False)

    默认情况下:axis=0表示按索引排序;ascending=True排序按升序排列;pct=False表示不输出百分比;na_option='keep'表示空值不做处理。

    下面将通过数据来学习下rank函数下各参数作用:

01 method:你想怎么排

    更改参数method的可选项,其他默认参数不更改:

  • first:表示按数值大小排列,如果数值相同时,按出现先后排序。如1,2,3,4,5,...,类似SQL中的row_number函数;

  • min:表示按数值大小排列,如果数值相同时,序号相同,但后面的序号仍按数值数目顺延,如1,2,2,4,5,...,类似SQL中的rank函数;

  • dense:表示按数值大小排列,如果数值相同时,序号相同,同时后面的序号不受影响,如1,2,2,3,4,...,类似SQL中的dense_rank函数;

data['first']=data['数量'].rank(method='first' )data['min']=data['数量'].rank(method='min' )data['dense']=data['数量'].rank(method='dense')

结果如下:

另外两个可选项,method='max'时,相同的数值,按最大的序号输出。可以理解成,在first排序结果的基础上,数值相同时,两个数值都按最大序号输出;而method='average'时,两个数值按对应序号的均值输出。

02 ascending:谁小谁有理?

    上面介绍method我们默认是升序排列,那么如果数量表示销售完成的订单数时,当然是完成的多的才要排前面,所以,ascending=False时,降序排列。

data['降序']=data['数量'].rank(method='min',ascending=False)

03 na_option:别把数据算丢了!

    默认情况下,na_option='keep',空值未被考虑在内,那么,如果数量表示客服投诉数量时,数量为空的应该是排名最好的。因此,当na_option='top',表示空值排最前,na_option='bottom',表示空值排最后。

data['top']=data['数量'].rank(method='min',na_option='top')data['bottom']=data['数量'].rank(method='min',na_option='bottom')

结果如下:

04 pct:算算分布?

    pct默认=False,想输出数值所占的分布情况时,pct=True即可。

data['pct']=data['数量'].rank(method='min',pct=True)

结果如下:

  • 9
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Python中的pandas库是数据分析和处理的重要工具。以下是pandas中一些常用的函数: 1. 读取数据: - read_csv(): 从CSV文件中读取数据。 - read_excel(): 从Excel文件中读取数据。 - read_sql(): 从SQL数据库中读取数据。 - read_json(): 从JSON文件中读取数据。 - read_html(): 从HTML文件或网页中读取表格数据。 2. 数据预览和概览: - head(): 查看DataFrame的前几行。 - tail(): 查看DataFrame的后几行。 - info(): 显示DataFrame的概要信息,包括列名和数据类型等。 - describe(): 显示DataFrame的统计描述信息,包括均值、方差等。 3. 数据选择和过滤: - loc[]: 通过标签选择行和列。 - iloc[]: 通过位置选择行和列。 - isin(): 判断元素是否属于给定的列表或数组。 - query(): 使用表达式查询数据。 4. 数据清洗和处理: - dropna(): 删除包含缺失值的行或列。 - fillna(): 填充缺失值。 - drop_duplicates(): 删除重复的行。 - replace(): 替换特定值。 5. 数据排序排名: - sort_values(): 按照指定列的值进行排序。 - sort_index(): 按照索引进行排序。 - rank(): 对值进行排名。 6. 数据聚合和分组: - groupby(): 根据某些列的值进行分组。 - agg(): 对每个组应用聚合函数。 - pivot_table(): 创建透视表。 这只是一些常用的函数pandas还有许多其他功能强大的函数可以用于数据处理和分析。你可以参考pandas官方文档以获得更多信息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值