python数据分析之DateFrame数据排序和排名方式

 更新时间:2022年05月12日 09:15:33   作者:柳小葱  
这篇文章主要介绍了python数据分析之DateFrame数据排序和排名方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

1.数据排序

DataFrame.sort_values(by,axis=0,ascending=True,inplace=False,kind="quicksort",na_position="last",ignore_index=False)
"""
by:要排序的名称列表
axis:轴,0表示行,1表示列
ascending:升序或者降序排列,默认是True,升序
inplace:是否直接在数据上修改,True为直接修改df,False为副本
kind:指定排序算法,
na_position:空值(NaN)的位置,值为first空值在数据开头,值为last空值在数据最后。
ignore_index:布尔值,是否忽略索引,值为True标记索引(从0开始顺序的整数值),False则忽略索引
"""

2.按某列降序排序

import pandas as pd
exelFile="C:\\Users\\Administrator\\Desktop\\python数据分析Code\\Code\\03\\46\\mrbook.xlsx"
df=pd.DataFrame(pd.read_excel(exelFile))
pd.set_option('display.max_rows',1000)#设置展示最高行数
pd.set_option('display.max_columns',1000)#设置展示最高列数
pd.set_option('display.unicode.east_asian_width',True)
pd.set_option("display.unicode.ambiguous_as_wide",True)
#按“销量”列降序排序
df1=df.sort_values(by="销量",ascending=False)
print(df1)

结果如图所示:

3.按多列升降序排列

#先按照图书名称降序排列,再按照销量降序排列
df2=df.sort_values(by=["图书名称","销量"])

4.对统计结构排序

将类别分组并统计总销量降序排列。

df3=df.groupby(["类别"])["销量"].sum().reset_index()
df4=df3.sort_values(by="销量",ascending=False)
print(df4)

结构如下:

5.数据排名

DataFrame.rank(axis-0,method="average",numeric_only=None,na_option="keep",ascending=True,,pct=False)
"""
axis:轴,0表示行,1表示列
method:表示在相同值的情况下所使用的排序方法,参数如下:average:默认值,平均值排名;min:最小值排名;max:最大值排名;first:按第一次出现的顺序排列;dense:密集排序,类似于最小值排序,,但排名每次只增加1,相同排名的数据只只占据一个名词。
numeric_only:对于DataFrame,如果设置值为True,并只对数字列进行排序。
ascending:升序或者降序排列,默认值为True
pct:布尔值,是否以百分比形式返回排名,默认值为False
"""

实例:

对销量相同的产品,按照顺序排名的平均值进行平均排名

#先排序
df=df.sort_values(by="销量",ascending=False)
#按照顺序排名的平均值进行平均排名
df["顺序排名"]=df["销量"].rank(ascending=False)

这里两个数销量相同,分别为3和4名,取平均值为3.5

对销量相同的产品,按照在原表中出现的顺序进行排名

#先排序
df=df.sort_values(by="销量",ascending=False)
df["顺序排名"]=df["销量"].rank(method="first",ascending=False)

结果如下:很正常的结果

对销量相同的产品,按照顺序排名并取最小值最为排名

#先排序
df=df.sort_values(by="销量",ascending=False)
df["顺序排名"]=df["销量"].rank(method="min",ascending=False)

排名如下:相同数量的都按照最小排名填写

对销量相同的产品,按照顺序排名并取最大值最为排名

#先排序
df=df.sort_values(by="销量",ascending=False)
df["顺序排名"]=df["销量"].rank(method="max",ascending=False)

排名如下:相同数量的都按照最大排名填写

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Anaconda+pycharm安装及环境配置全过程

    Anaconda+pycharm安装及环境配置全过程

    在使用pyCharm进行开发时,需要用到Anaconda创建的环境,下面这篇文章主要给大家介绍了关于Anaconda+pycharm安装及环境配置的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • 基于python for in if 连着写与分开写的区别说明

    基于python for in if 连着写与分开写的区别说明

    这篇文章主要介绍了基于python for in if 连着写与分开写的区别说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 详解requirements.txt的生成和安装

    详解requirements.txt的生成和安装

    本文主要介绍了详解requirements.txt的生成和安装,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • python的函数形参和返回值你了解吗

    python的函数形参和返回值你了解吗

    这篇文章主要为大家详细介绍了python的函数形参和返回值,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • python实现二维插值的三维显示

    python实现二维插值的三维显示

    这篇文章主要为大家详细介绍了python实现二维插值的三维显示,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-12-12
  • kNN算法python实现和简单数字识别的方法

    kNN算法python实现和简单数字识别的方法

    这篇文章主要介绍了kNN算法python实现和简单数字识别的方法,详细讲述了kNN算法的优缺点及原理,并给出了应用实例,需要的朋友可以参考下
    2014-11-11
  • Python 批量刷博客园访问量脚本过程解析

    Python 批量刷博客园访问量脚本过程解析

    这篇文章主要介绍了Python 批量刷博客园访问量脚本过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Python实现简单的2048小游戏

    Python实现简单的2048小游戏

    这篇文章主要为大家详细介绍了Python实现简单的2048小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-03-03
  • Python元类基础知识示例深度剖析

    Python元类基础知识示例深度剖析

    这篇文章主要为大家介绍了Python元类基础知识深度剖析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • python爬虫之爬取谷歌趋势数据

    python爬虫之爬取谷歌趋势数据

    这篇文章主要介绍了python爬虫之爬取谷歌趋势数据,文中有非常详细的代码示例,对正在学习python爬虫的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04

最新评论