Python数据分析实战【十四】:你知道python中有几种排序方法吗【文末源码地址】

news2024/11/14 21:46:34

文章目录

  • 一、List.sort()排序
    • 案例一:按照列表中的元素进行排序
    • 案例二:按照销售额数据进行排列
  • 二、sorted()排序
    • 案例一:sorted()对列表进行排序
    • 案例二:sorted()对字典进行排序
    • 案例三:sorted()对列表中的字典元素排序
  • 三、pandas排序
    • 案例一:pandas按照销售额进行排序
    • 案例二:官方案例S操作
  • 源码地址

在数据分析的工作中,我经常会遇到对数据排序的场景,比如:

  • 按照销售总额对门店进行排序
  • 按照日期对销售额镜像排序

如果你也遇到类似的问题,不妨接着往下看,我总结了四种排序方法,建议收藏一下,以后方便查阅。

一、List.sort()排序

sort()方法是python列表内置的方法,这个方法有个弊端:会在原来的列表上进行修改
在数据分析的过程中,修改原数据是大忌,所以这种方法我不常用。

参数介绍:

  • list.sort(key=None,reverse=False)

key:是排序的关键词

reverse:降序,默认为false,即升序排序

案例一:按照列表中的元素进行排序

amount = [10,30,20,40,50]

# 升序排序
# amount.sort()

# 降序排序
amount.sort(reverse=True)

运行结果:

[50, 40, 30, 20, 10]

案例二:按照销售额数据进行排列

这种数据很常见,因为这与读完数据库出来的数据结构很像都是:列表中包含元组,每个元组就是一条数据

# 按照元组中的第二个元素进行升序排列
amount = [("销售额",10),("销售额",30),("销售额",20),("销售额",40),("销售额",50)]
amount.sort(key=lambda x:x[1])

运行结果:

[('销售额', 10), ('销售额', 20), ('销售额', 30), ('销售额', 40), ('销售额', 50)]

按照元组中的第二个元素进行降序序排列

# 按照元组中的第二个元素进行降序序排列
amount = [("销售额",10),("销售额",30),("销售额",20),("销售额",40),("销售额",50)]
amount.sort(key=lambda x:x[1],reverse=True)

运行结果:

[('销售额', 50), ('销售额', 40), ('销售额', 30), ('销售额', 20), ('销售额', 10)]

二、sorted()排序

sorted()方法在实际工作中使用最多,它与sort()只能用在列表上不同,sorted()方法可以用在列表,元组,字典以及所有可迭代对象上。而且,sorted()不会在原来的对象上操作,会生成一个新的对象,这就很nice。

参数介绍:

  • sorted(iterable,key=None,reverse=False)

iterable:可迭代的对象,list、dict、tuple

key:排序的关键元素

reverse:排序规则,reverse=True 降序,reverse=False 升序

案例一:sorted()对列表进行排序

amount = [10,30,20,40,50]

# 升序排序
# amount_new = sorted(amount)

# 降序排序
amount_new = sorted(amount,reverse=True)

运行结果:

[50, 40, 30, 20, 10]

案例二:sorted()对字典进行排序

amount = {"A部":10,"C部":30,"B部":20,"E部":40,"D部":50}

# 按照字典的值进行升序排列
# amount_new = dict(sorted(amount.items(),key=lambda x:x[1]))

# 按照字典的值进行降序排序
amount_new = dict(sorted(amount.items(),key=lambda x:x[1],reverse=True))

运行结果:

{'D部': 50, 'E部': 40, 'C部': 30, 'B部': 20, 'A部': 10}

案例三:sorted()对列表中的字典元素排序

amount = [
    {"部门":"A部","销售额":10},
    {"部门":"C部","销售额":30},
    {"部门":"B部","销售额":20},
    {"部门":"E部","销售额":40},
    {"部门":"D部","销售额":50},
]
# 按照销售额进行升序排列
# amount_new = sorted(amount,key=lambda x:x["销售额"])

# 按照销售额进行降序排列
amount_new = sorted(amount,key=lambda x:x["销售额"],reverse=True)

运行结果:

[{'部门': 'D部', '销售额': 50},
 {'部门': 'E部', '销售额': 40},
 {'部门': 'C部', '销售额': 30},
 {'部门': 'B部', '销售额': 20},
 {'部门': 'A部', '销售额': 10}]

三、pandas排序

在数据分析的工作中,pandas是我用的最多的工具,在【数据读取】-【数据分析】-【数据存储】整个过程中都有使用,而且pandas进行排序更加方便快速。

参数介绍:

  • sort_values(by,ascending=True)

by:排序的字段名

ascending:ascending=True 升序,ascending=False 降序

案例一:pandas按照销售额进行排序

import numpy as np
import pandas as pd

df = pd.DataFrame(data={
    "部门":["A部","C部","B部","E部","D部"],
    "销售额":[10,30,20,40,50]
})

数据展示:
在这里插入图片描述

# 按照销售额升序排列
# df2 = df.sort_values(by=["销售额"])

# 按照销售额降序排列
df2 = df.sort_values(by=["销售额"],ascending=False)

运行结果:
在这里插入图片描述

案例二:官方案例S操作

df = pd.DataFrame({
    'col1': ['A', 'A', 'B', np.nan, 'D', 'C'],
    'col2': [2, 1, 9, 8, 7, 4],
    'col3': [0, 1, 9, 4, 2, 3],
    'col4': ['a', 'B', 'c', 'D', 'e', 'F']
})
  • nan值【空值】,排序的时候放在第一位
# nan值【空值】,排序的时候放在第一位
df2 = df.sort_values(by='col1', ascending=False, na_position='first')

运行结果:
在这里插入图片描述

  • 按照某一列字母小写排序
# 按照某一列字母小写排序
df2 = df.sort_values(by='col4',key=lambda x:x.str.lower())

在这里插入图片描述

源码地址

链接:https://pan.baidu.com/s/1ovfLWgJ7_FxXsOqjH0uXhA?pwd=ck1h
提取码:ck1h

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/506129.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[工具]Pytorch-lightning的使用

Pytorch-lightning的使用 Pytorch-lightning介绍Pytorch-lightning与Pytorch的区别Pytorch-lightning框架的优势Pytorch-lightning框架 重要资源 Pytorch-lightning介绍 这里介绍Pytorch_lighting框架. Pytorch-lightning与Pytorch的区别 Pytorch-lightning可以简单的看作是…

shiro反序列化[cve_2016_4437]

目录 什么是shiro? 漏洞原理 漏洞复现 修复方案 什么是shiro? Apache Shiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。 漏洞原理 Apache Shiro 1.2.4及以前版本…

D1. LuoTianyi and the Floating Islands (Easy Version)(树形dp)

Problem - D1 - Codeforces 这是问题的简化版本。唯一的区别在于在该版本中k≤min(n,3)。只有在两个版本的问题都解决后,才能进行黑客攻击。 琴音和漂浮的岛屿。 洛天依现在生活在一个有n个漂浮岛屿的世界里。这些漂浮岛屿由n−1个无向航线连接,任意两个…

【0基础学爬虫】爬虫基础之自动化工具 Pyppeteer 的使用

大数据时代,各行各业对数据采集的需求日益增多,网络爬虫的运用也更为广泛,越来越多的人开始学习网络爬虫这项技术,K哥爬虫此前已经推出不少爬虫进阶、逆向相关文章,为实现从易到难全方位覆盖,特设【0基础学…

Python学习之Image模块图片滤镜效果操作示例

前言 滤镜效果是图像处理中常用的一种技术,可以用来增强图像的视觉效果,实现不同的效果,比如增强对比度、饱和度、色彩等。滤镜效果可以帮助用户快速地调整图像的特性,从而使图像更加适合用户的需求。 Image模块对于图像处理的…

Hive SQL 中 map, reduce 的数据血缘分析

Hive SQL 中的有些 SQL 语句和传统关系型数据库中使用的 SQL 语句在语法和功能上都有非常大的差异。在数据血缘分析中对这些 Hive SQL 特有的 SQL 语法的支持,是马哈鱼数据血缘关系分析工具和一般数据血缘分析工具的一个重要区别,对这些特殊 SQL 语法的支…

python代码大全

Python是一种高级编程语言,属于通用编程语言。它是由荷兰人Guido van Rossum在1989年创造的,其语法简单、易读易写,是一种解释型、面向对象、动态数据类型的编程语言,支持多种编程范式,如面向对象、函数式、过程化等。…

FreeRTOS内核:详解Queue队列 FIFO(GPT4帮写)

FreeRTOS内核:详解队列管理FIFO 1. 背景2. Queue相关API2.1 xQueueCreate():创建2.2 xQueueSend():发送2.3 xQueueReceive():接收2.4 vQueueDelete():删除2.5 xQueuePeek() :不删除的方式从FIFO读数据&…

小程序技术给统一门户的建设带来新思路

统一门户的发展可以追溯到20世纪90年代初期,当时的企业和组织开始意识到信息技术可以用于整合和管理各种分散的应用程序和服务。随着互联网的普及和Web 2.0技术的兴起,统一门户的发展迅速加速。 在早期,统一门户主要采用定制化开发的方式实现…

Qt音视频开发45-音视频类结构体参数的设计

一、前言 视频监控内核组件重构和完善花了一年多时间,整个组件个人认为设计的最好的部分就是各种结构体参数的设计,而且分门别类,有枚举值,也有窗体相关的结构体参数,解码相关的结构体参数,同时将部分常用…

动态规划的学习

文章目录 动态规划的学习一、什么是动态规划?二、如何思考状态转移方程?三、动态规划的基本原理1.[509. 斐波那契数](https://leetcode.cn/problems/fibonacci-number/)1.1 暴力递归解法:1.1.1 递归算法的时间复杂度那为什么时间复杂度会这么…

vcruntime140.dll丢失的解决方法分享,多种修复方式

随着最新版本的Windows 10操作系统推出,个人电脑的性能和功能得到了巨大提升。然而,尽管Microsoft已经不断更新固件和驱动程序,但仍然存在一些常见问题,例如“ vcruntime140.dll丢失 ”错误。这个错误可能会导致某些应用程序无法正…

三流面试聊技术,二流面试聊框架,一流面试…

前言 本文是为了帮大家快速回顾了软件测试中知识点,这套面试手册涵盖了诸多软件测试技术栈的面试题和答案,相信可以帮助大家在最短的时间内用作面试复习,能达到事半功倍效果。 本来想将文件上传到github上,但由于文件太大有的都…

模板学堂|BI大屏制作十大高频问题的解决技巧

DataEase开源数据可视化分析平台于2022年6月正式发布模板市场(https://dataease.io/templates/)。模板市场旨在为DataEase用户提供专业、美观、拿来即用的仪表板模板,方便用户根据自身的业务需求和使用场景选择对应的仪表板模板,并…

4.3 线性表之链表

目录 链表的存储结构 链表的结构 链表的相关运算 链表的存储结构 将线性表L(a0,a1,……,an-1)中各元素分布在存储器的不同存储块,称为结点,通过地址或指针建立元素之间的联系 结点的data域存放数据元素ai,而next域是一个指针&#xff…

Android Framework开发的前景如何?

Android Framework是Android操作系统中的重要组成部分,它提供了一系列的API(应用程序接口)和服务,方便开发人员创建Android应用程序。随着Android设备的普及和移动互联网市场的快速发展,Android Framework开发有着广泛…

我怎样一步一步引导ChatGPT写完一篇本科毕业论文

先了解毕业论文相关专家 给ChatGPT指定一个角色 我给ChatGPT指定一个学术导师角色,好家伙,给我谦虚起来了 好,换个方式,他开始听话了 了解论文格式 计算机科学与技术专业论文一般有哪些部分组成 选题 了解方向 请先告诉我计算…

(一)空间数据的转换与处理——投影变换

空间数据的转换与处理——投影变换 原始数据往往由于在数据结构、数据组织、数据表达等方面与用户需求不一致而要进行转换与处理。本节主要介绍 ArGIS 中数据的投影变换内容。 目录 空间数据的转换与处理——投影变换 1.概述2.定义投影3.投影变换3.1栅格数据的投影变换3.2矢量…

私人图床 - 本地快速搭建简单的EasyImage图床并实现公网远程访问

文章目录 1.前言2. EasyImage网站搭建2.1. EasyImage下载和安装2.2. EasyImage网页测试2.3.cpolar的安装和注册 3.本地网页发布3.1.Cpolar云端设置3.2 Cpolar内网穿透本地设置 4. 公网访问测试5. 结语 1.前言 一个好的图床,是网站或者文章图片能稳定显示的关键&…

pytest分布式执行(pytest-xdist)

前言 平常我们手工测试用例非常多时,比如有1千条用例,假设每个用例执行需要1分钟。如果一个测试人员执行需要1000分钟才能执行完,当项目非常紧急的时候, 我们会用测试人力成本换取时间成本,这个时候多找个小伙伴把任务…