【pandas基础】--数据排序

这篇具有很好参考价值的文章主要介绍了【pandas基础】--数据排序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

pandas的数据排序可以帮助我们更好地理解和分析数据。
通过对数据进行排序,我们可以提取出特定的信息,例如最大值、最小值、中位数、众数等等,从而更准确地识别数据的特征和特点。

此外,数据排序还可以帮助我们更好地进行数据可视化,例如绘制直方图、箱线图等等,进一步帮助我们对数据进行解读和分析。
总之,数据排序在数据处理和分析中起着非常重要的作用。

1. 索引排序

pandas的数据集DataFrame默认的索引是从0开始的数字,默认升序排列。

import pandas as pd

df = pd.DataFrame(
    {
        "name": ["小华", "小红", "小明"],
        "gender": ["男", "女", "男"],
        "score": [98, 100, 90],
    }
)

df

image.png

当然,除了默认索引,也可以手动设置索引,手动设置索引的话,索引的顺序不会自动排列。
比如:

df = pd.DataFrame(
    {
        "name": ["小华", "小红", "小明"],
        "gender": ["男", "女", "男"],
        "score": [98, 100, 90],
    },
    index=[2, 1, 3],
)

df	

image.png

1.1 索引升序

此时,就可以通过sort_index函数对数据集进行排序。默认是升序:

df.sort_index() # 升序

image.png

1.2 索引降序

设置ascending=False,则按照索引降序排列。

df.sort_index(ascending=False) # 降序

image.png

2. 值排序

除了索引排序,使用更多的是值排序,也就是按照各个列的值来排序。

2.1 单列的值排序

按照单个列的值排序:(英语成绩由高到低排序)

df = pd.DataFrame(
    {
        "name": ["小华", "小红", "小明"],
        "math": [78, 98, 90],
        "english": [80, 100, 80],
    },
)

df.sort_values(by="english", ascending=False)

image.png

2.2 多列的值排序

从上面可以看出,小华和小明的英语成绩一样,这时,可以用多列排序,先按照英语排序,然后再按照数学成绩排序,得到更合理的排序结果。

df.sort_values(by=["english", "math"], ascending=False)

image.png

3. 最大最小值

通过排序也虽然也可以得到数据集中最大和最小的几个值,但是pandas还给我们提供了两个更加简单的函数,
专门用来获取最大值和最小值。
也就是:nlargestnsmallest

3.1 nlargest

同样使用上面的数据,获取数学成绩前两名(成绩从高到低)。

df = pd.DataFrame(
    {
        "name": ["小华", "小红", "小明"],
        "math": [78, 98, 90],
        "english": [80, 100, 80],
    },
)

df.nlargest(2, "math")

image.png

3.2 nsmallest

获取数学成绩后两名(成绩从低到高)。

df.nsmallest(2, "math")

image.png

4. 数据排名

排名排序有些细微的区别,排序只是按照值的大小顺序排列,如果两个值一样也只是简单的保持其原来的先后顺序。
排名则和具体情况相关联,比如,有时候两个并列第一名后,后续的就是第三名,第二名空缺出来;也有时候并列名次存在时不影响后续的排名。

下面示例演示三种常用的排名方式:

4.1 顺序排名

顺序排名(method='first')和排序一样。

df = pd.DataFrame(
    {
        "name": ["小华", "小红", "小明", "小张", "小李"],
        "score": [78, 98, 90, 98, 78],
    },
)

df["成绩排名"] = df.score.rank(method='first', ascending=False)
df["成绩排名"] = df["成绩排名"].astype(int)
df.sort_values("成绩排名")

image.png
成绩相同时,按照原数据集中的顺序依次排列。

4.2 跳跃排名

跳跃排名(method='min'),并列名次存在时,后续的名次会跳跃。

df["成绩排名"] = df.score.rank(method='min', ascending=False)
df["成绩排名"] = df["成绩排名"].astype(int)
df.sort_values("成绩排名")

image.png
平时的考试一般会按照这种排名方式。

4.3 密集排名

密集排名(method='dense'),并列名次存在时,后续的名次仍然依次下去。

df["成绩排名"] = df.score.rank(method='dense', ascending=False)
df["成绩排名"] = df["成绩排名"].astype(int)
df.sort_values("成绩排名")

image.png
名次存在并列时,不影响后续的排名。

5. 总结回顾

本篇主要介绍了pandas数据排序的各种常用方法,排序之后的数据更容易查看,分析和比较,是分析前了解数据的必要手段。

上面只是介绍了各个排序相关函数最常用的参数,如果有更复杂的排序需求,请参考pandas的文档,也欢迎留言探讨。文章来源地址https://www.toymoban.com/news/detail-454335.html

到了这里,关于【pandas基础】--数据排序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数据分析 - 基础入门之pandas篇②】- pandas数据结构——Series

    大家好!我是一朵向阳花(花花花),本期跟大家分享的知识是 pandas 数据结构——Series。 作者的【 Python 数据分析】专栏正在火热更新中,如果本文对您有帮助,欢迎大家点赞 + 评论 + 收藏 ! 每日金句分享: 愿你有一天,能和你最重要的人重逢。』—— 艾拉「可塑性记忆

    2024年02月13日
    浏览(41)
  • 【数据分析 - 基础入门之pandas篇①】- pandas介绍

    pandas 是 Python 的 核心数据分析支持库 ,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据。 pandas 的目标是成为 Python 数据分析实践与实战的必备高级工具 ,其长远目标是成为最强大、最灵活、可以支持任何语言的开源数据分析工具。经过多年

    2024年02月13日
    浏览(43)
  • 【pandas基础】--数据统计

    在进行统计分析时, pandas 提供了多种工具来帮助我们理解数据。 pandas 提供了多个聚合函数,其中包括均值、标准差、最大值、最小值等等。 此外, pandas 还可以进行基于列的统计分析,例如通过 groupby() 函数对数据进行聚合,并计算每组的统计分析结果。 除了基本的统计分

    2024年02月08日
    浏览(46)
  • 【pandas基础】--数据类型

    数据类型是计算机编程中将不同类型的数据值分类和定义的方式。 通过数据类型,可以确定数据的存储方式和内存占用量,了解不同类型的数据进行各种运算的能力。 使用 pandas 进行数据分析时,最常用到的几种类型是: 字符串类型,各类文本内容都是字符串类型 数值类型

    2024年02月06日
    浏览(36)
  • 【pandas基础】--数据整理

    pandas 进行数据整理的意义在于,它是数据分析、数据科学和机器学习的前置步骤。 通过数据整理可以提前了解数据的概要,缺失值、重复值等情况,为后续的分析和建模提供更为可靠的数据基础。 本篇主要介绍利用 pandas 进行数据整理的各种方法。 获取数据概要信息可以帮

    2024年02月04日
    浏览(62)
  • 【pandas基础】--数据修改

    pandas 作为一种常用的数据分析工具,提供了广泛的数据修改方法。 既可以针对 行 或者 列 的数据进行修改,也可以对具体 单个元素 进行修改,还可以基于条件选择要修改的 行 或者 列 的数据。 pandas 的 DataFrame 增加一行或者多行数据之前是使用 append 方法。 使用append方法会

    2024年02月05日
    浏览(33)
  • 【pandas基础】--数据读取

    数据读取是第一步,只有成功加载数据之后,后续的操作才有可能。 pandas 可以读取和导入各种数据格式的数据,如CSV,Excel,JSON,SQL,HTML等,不需要手动编写复杂的读取代码。 pandas 提供了导入各类常用文件格式数据的接口,这里介绍3种最常用的加载数据的接口。 读取cs

    2024年02月02日
    浏览(32)
  • 【pandas基础】--数据检索

    pandas 的数据检索功能是其最基础也是最重要的功能之一。 pandas 中最常用的几种数据过滤方式如下: 行列过滤:选取指定的行或者列 条件过滤:对列的数据设置过滤条件 函数过滤:通过函数设置更加复杂的过滤条件 本篇所有示例所使用的测试数据如下: pandas 中最常用的按

    2024年02月03日
    浏览(45)
  • 【pandas基础】--核心数据结构

    pandas 中用来承载数据的两个最重要的结构分别是: Series:相当于增强版的一维数组 DataFrame:相当于增强版的二维数组 pandas 最大的优势在于处理表格类数据,如果数据维度超过二维,一般我们会使用另一个 python 的库 numpy 。 本篇主要介绍这两种核心数据结构的创建方式。

    2024年02月03日
    浏览(38)
  • 【pandas基础】--数据拆分与合并

    数据集拆分是将一个大型的数据集拆分为多个较小的数据集,可以让数据更加清晰易懂,也方便对单个数据集进行分析和处理。 同时,分开的数据集也可以分别应用不同的数据分析方法进行处理,更加高效和专业。 数据集合并则是将多个数据集合并成一个大的数据集,可以

    2024年02月05日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包