iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >pandas中按行或列的值对数据排序如何实现
  • 300
分享到

pandas中按行或列的值对数据排序如何实现

2023-07-05 06:07:37 300人浏览 独家记忆
摘要

本文小编为大家详细介绍“pandas中按行或列的值对数据排序如何实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“pandas中按行或列的值对数据排序如何实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。在处理

本文小编为大家详细介绍“pandas中按行或列的值对数据排序如何实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“pandas中按行或列的值对数据排序如何实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

    在处理表格型数据时,常会用到排序,比如,按某一行或列的值对表格排序,要怎么做呢?

    这就要用到 pandas 中的 sort_values() 函数。

    一、 按列的值对数据排序

    先来看最常见的情况。

    1.按某一列的值对数据排序

    以下面的数据为例。

    import pandas as pd
    df_col = pd.DataFrame({'Name':['Paul','Richard', 'Betty',  'Philip','Anna'],        'course1':[85,83,90,84,85],        'course2':[90,82,79,71,86],        'sport':['basketball', 'Volleyball', 'football', 'Basketball','baseball']},         index=[1,2,3,4,5])  df_col

    Namecourse1course2sport
    1Paul8590basketball
    2Richard8382Volleyball
    3Betty9079football
    4Philip8471Basketball
    5Anna8586baseball

    在 sort_values() 函数中设置 by='列名',即可以按这一列值的顺序重新排列行。

    df_sort=df_col.sort_values(by='course2')df_sort

    Namecourse1course2sport
    4Philip8471Basketball
    3Betty9079football
    2Richard8382Volleyball
    5Anna8586baseball
    1Paul8590basketball

    如以上结果所示,默认是升序排列。还可以做降序排列,在 sort_values() 函数中设置 ascending=False 即可。例如:

    df_sort=df_col.sort_values(by='course2',ascending=False)df_sort

    Namecourse1course2sport
    1Paul8590basketball
    5Anna8586baseball
    2Richard8382Volleyball
    3Betty9079football
    4Philip8471Basketball

    2. 按多列的值对数据排序

    您是否遇到过这种情况:要排序的某一列数据有相同的值,此时结果会怎么样呢?我们来看下面的例子。

    df_sort=df_col.sort_values(by='course1')df_sort

    Namecourse1course2sport
    2Richard8382Volleyball
    4Philip8471Basketball
    1Paul8590basketball
    5Anna8586baseball
    3Betty9079football

    从结果看到,“course1” 有两个相同的值 85,此时会依据 index 的先后顺序排列。

    那如果不想按 index 顺序,想要自己设定相同值的排序方式,应该怎么做呢?

    可以设置第二列,对于第一列的相同值,参照第二列的值排序。例如:

    df_sort=df_col.sort_values(by=['course1','course2'])df_sort

    Namecourse1course2sport
    2Richard8382Volleyball
    4Philip8471Basketball
    5Anna8586baseball
    1Paul8590basketball
    3Betty9079football

    可以看到,by 参数中的第二列 “course2” 只在第一列 “course1” 中有相同值时起作用,因此只有 “Anna” 和 “Paul” 所在的这两行数据位置互换,其它行位置不变。

    3. key 参数:设置排序时的数据变换函数

    在实际中还可能会遇到这种情况,数据中大小写都有,比如例子数据的 “sport” 列。按这一列对数据排序,结果如下:

    df_sort=df_col.sort_values(by=['sport'])df_sort

    Namecourse1course2sport
    4Philip8471Basketball
    2Richard8382Volleyball
    5Anna8586baseball
    1Paul8590basketball
    3Betty9079football

    看结果发现,大写字母排在小写字母前面,因此 “Volleyball” 所在行排在 “baseball” 所在行前面,但这并不是我们想要的排序结果。那应该怎么做,才能按字母顺序排序呢?

    可以设置 sort_values() 函数的 key 参数。

    df_sort=df_col.sort_values(by=['sport'],key=lambda col:col.str.lower())df_sort

    Namecourse1course2sport
    5Anna8586baseball
    1Paul8590basketball
    4Philip8471Basketball
    3Betty9079football
    2Richard8382Volleyball

    此时的排序结果就是按字母顺序排列。

    4. 修改原数据

    前面介绍的操作中,每次都生成了一个新的数据 df_sort,并没有改变原数据。

    df_col

    Namecourse1course2sport
    1Paul8590basketball
    2Richard8382Volleyball
    3Betty9079football
    4Philip8471Basketball
    5Anna8586baseball

    但是,有时可能数据太大,而原数据后续不再使用。为了节省空间,想直接在原数据上改动。应该怎么办呢?

    只要在 sort_values() 函数中设置 inplace=True。

    df_col.sort_values(by='course2',inplace=True)df_col

    Namecourse1course2sport
    4Philip8471Basketball
    3Betty9079football
    2Richard8382Volleyball
    5Anna8586baseball
    1Paul8590basketball

    二、 按行的值对数据排序

    需要注意的是,这种情况只适用于各列数据类型相同的情况,例如下面例子中的数据,每一列数据都是数值型。而前面例子的数据既有数值型,又有字符型,无法按行的值排序。

    df_row = pd.DataFrame({        'course1':[91,85,90,84,92],        'course2':[72,81,76,71,79],        'course3':[93,85,88,94,86]},         index=['Paul','Richard', 'Betty',  'Philip','Anna'])df_row

    course1course2course3
    Paul917293
    Richard858185
    Betty907688
    Philip847194
    Anna927986

    按行的值排序时,设置 by 参数为某行的 index 名,并且 axis=1。

    df_sort=df_row.sort_values(by='Anna',axis=1)df_sort

    course2course3course1
    Paul729391
    Richard818585
    Betty768890
    Philip719484
    Anna798692

    按行值排序在 sort_values() 函数中设置 ascending, key, inplace 等参数的方式都与前面介绍的按列值排序相同。这里仅以按多行的值对数据排序为例。

    df_sort=df_row.sort_values(by=['Richard','Paul'],axis=1,ascending=False)df_sort

    course3course1course2
    Paul939172
    Richard858581
    Betty889076
    Philip948471
    Anna869279

    读到这里,这篇“pandas中按行或列的值对数据排序如何实现”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

    --结束END--

    本文标题: pandas中按行或列的值对数据排序如何实现

    本文链接: https://www.lsjlt.com/news/350116.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • pandas中按行或列的值对数据排序如何实现
      本文小编为大家详细介绍“pandas中按行或列的值对数据排序如何实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“pandas中按行或列的值对数据排序如何实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。在处理...
      99+
      2023-07-05
    • pandas中按行或列的值对数据排序的实现
      目录一、 按列的值对数据排序1.按某一列的值对数据排序2. 按多列的值对数据排序3. key 参数:设置排序时的数据变换函数4. 修改原数据二、 按行的值对数据排序参考在处理表格型数...
      99+
      2023-02-27
      pandas 按行值对数据排序 pandas 列值对数据排序
    • python如何实现按照键或者数值对字典进行排序
      这篇文章主要介绍python如何实现按照键或者数值对字典进行排序,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!如何实现按照键或者数值对字典进行排序# 按照键或者数值对字典进行排序dict3 =&n...
      99+
      2023-06-27
    • pandas数值排序的实现实例
      目录1.按照一列数值进行排序 1.1按照五缺失值的一列进行排序 1.1.1升序排列 1.1.2 降序排列 1.2按照有缺失值的一列进行排序 1.2.1 缺失值显示在最后 1.2.2 ...
      99+
      2024-04-02
    • PHP中的asort()函数对数组按值进行排序
      PHP中的asort()函数对数组按值进行排序,需要具体代码示例PHP是一种广泛使用的服务器端脚本语言,它具有丰富的数组处理函数。其中,asort()函数是一个非常有用的函数,它可以按照数组的值进行排序。本文将详细介绍asort()函数的使...
      99+
      2023-11-18
      PHP 数组排序 asort()
    • 如何使用 PHP 按键值对数组进行排序?
      是的,可以使用 ksort() 或 krsort() 函数按键值对数组进行排序。ksort() 按键升序排序,krsort() 按键降序排序。 使用 PHP 按键值对数组进行排序 在 ...
      99+
      2024-05-01
      php 排序 键值对
    • pandas删除某行或某列数据的实现示例
      目录1、drop()函数2、del函数首先,创建一个DataFrame格式数据作为举例数据。 # 创建一个DataFrame格式数据 data = {'a': ['a0', 'a1'...
      99+
      2024-04-02
    • 使用PHP中的arsort()函数对数组按值进行逆序排序
      标题:PHP中使用arsort()函数对数组按值进行逆序排序文章正文:在PHP中,数组是非常常用的数据结构。有时候我们需要对数组进行排序,特别是按值进行排序。PHP提供了一系列的排序函数来满足我们的需求,其中之一就是arsort()函数。a...
      99+
      2023-11-18
      PHP arsort() 逆序排序
    • php如何根据值对数组进行降序排序
      小编给大家分享一下php如何根据值对数组进行降序排序,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!根据值对数组进行降序排序 - ...
      99+
      2024-04-02
    • php如何根据值对数组进行升序排序
      小编给大家分享一下php如何根据值对数组进行升序排序,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!根据值对数组进行升序排序 - ...
      99+
      2024-04-02
    • SQLite中如何对数据进行排序
      在SQLite中,可以使用ORDER BY子句对数据进行排序。可以在SELECT语句中添加ORDER BY子句,后面跟上要排...
      99+
      2024-04-09
      SQLite
    • PHP如何对数组中的值进行大小排序
      PHP是一种常用的服务器端脚本语言,广泛应用于网站开发和数据处理领域。在PHP中,对数组中的值进行大小排序是很常见的需求。通过使用内置的排序函数,可以很方便地实现对数组的排序操作。下面...
      99+
      2024-04-02
    • 【MySQL】MySQL中如何对数据进行排序
      目录 MySQL中的数据排序一、 排序的基本使用二、 使用列的别名来排序三、 二级排序 MySQL中的数据排序 一、 排序的基本使用 在查询数据时,如果没有使用排序操作,默认情...
      99+
      2023-09-01
      mysql sql 数据库
    • pandas如何统计某一列或某一行的缺失值数目
      目录统计某一列或某一行的缺失值数目1.使用isnull()2.使用count利用pandas处理缺失值处理缺失值统计某一列或某一行的缺失值数目 1.使用isnull() import...
      99+
      2024-04-02
    • 怎么在mongodb中对数据按时间进行排序
      在mongodb中给数据按时间进行排序的方法:1.启动mongodb服务;2.登录mongodb数据库;3.使用数据库;4.使用sort()方法进行排序;具体步骤如下:首先,在命令行中启动mongodb服务;net start MongoD...
      99+
      2024-04-02
    • 在 PHP 中,如何根据数组值的比较对数组进行排序?
      php 中对数组进行排序的方法有:使用 sort() 函数升序排列。使用 rsort() 函数降序排列。使用 asort() 函数为关联数组升序排列值。使用 arsort() 函数为关联...
      99+
      2024-05-03
      php 数组排序 排列
    • 在 PHP 中,如何仅按数组某些键值对对数组进行排序,保留键名?
      在 php 中根据键值对对数组进行排序时,可以使用 uasort() 函数,接收一个回调函数对键值进行比较,保留键名。例如,按员工薪酬对员工记录排序,可以使用 uksort() 函数,从...
      99+
      2024-05-04
      数组 排序 键值对
    • PHP 如何按值对数组进行排序,同时保留原始键名?
      php 提供两种按值对关联数组进行排序的方法:使用 asort() 函数:对值从小到大排序,同时保留原始键名。使用 usort() 函数和闭包:通过自定义比较函数对值进行排序,同时保留原...
      99+
      2024-05-04
      数组排序 关键词: php
    • 如何使用pandas或numpy处理数据中的空值
      这篇文章主要介绍如何使用pandas或numpy处理数据中的空值,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.关于np.nan:先明确一个问题,即空值的产生只有np.nan()一种方法。# np.nan...
      99+
      2023-06-15
    • PHP数组值按大小排序的实现方法
      PHP数组值按大小排序的实现方法 在PHP中,对数组进行排序是非常常见的操作。如果想要对数组的值按照大小进行排序,可以使用PHP内置的函数来实现。下面将展示两种常用的方法来实现数组值按...
      99+
      2024-04-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作