Pandas 最常用的两种排序方法

yizhihongxing

Pandas提供了两种排序方式:按标签排序和按数值排序。

按标签排序

按标签排序使用 .sort_index() 方法,可以按照索引的标签进行排序,默认为升序排列。例如:

import pandas as pd

# 创建一个示例DataFrame
df = pd.DataFrame({'col1': [3, 1, 2], 'col2': [5, 4, 6]}, index=['c', 'a', 'b'])
print(df)

# 按照索引标签进行升序排序
df_sorted = df.sort_index()
print(df_sorted)

# 按照索引标签进行降序排序
df_sorted_desc = df.sort_index(ascending=False)
print(df_sorted_desc)

输出:


   col1  col2
c     3     5
a     1     4
b     2     6

   col1  col2
a     1     4
b     2     6
c     3     5

   col1  col2
c     3     5
b     2     6
a     1     4

按数值排序

按数值排序使用 .sort_values() 方法,可以按照某一列的数值大小进行排序,默认为升序排列。例如:


import pandas as pd

# 创建一个示例DataFrame
df = pd.DataFrame({'col1': [3, 1, 2], 'col2': [5, 4, 6]}, index=['c', 'a', 'b'])
print(df)

# 按照 col1 列的数值进行升序排序
df_sorted = df.sort_values('col1')
print(df_sorted)

# 按照 col2 列的数值进行降序排序
df_sorted_desc = df.sort_values('col2', ascending=False)
print(df_sorted_desc)

输出:


   col1  col2
c     3     5
a     1     4
b     2     6

   col1  col2
a     1     4
b     2     6
c     3     5

   col1  col2
b     2     6
c     3     5
a     1     4

需要注意的是,按数值排序时如果有空值NaN,排序方法会将空值放在末尾,可以通过 na_position 参数指定空值放置的位置。例如:


import pandas as pd

# 创建一个示例DataFrame,包含一个NaN值
df = pd.DataFrame({'col1': [3, 1, 2, None], 'col2': [5, 4, 6, 3]}, index=['c', 'a', 'b', 'd'])
print(df)

# 按照 col1 列的数值进行升序排序,将空值放在末尾
df_sorted = df.sort_values('col1', na_position='last')
print(df_sorted)

# 按照 col2 列的数值进行降序排序,将空值放在首位
df_sorted_desc = df.sort_values('col2', ascending=False, na_position='first')
print(df_sorted_desc)

输出:

   col1  col2
c   3.0     5
a   1.0     4
b   2.0     6
d   NaN     3
   col1  col2
a   1.0     4
b   2.0     6
c   3.0     5
d   NaN     3
   col1  col2
b   2.0     6
c   3.0     5
a   1.0     4
d   NaN     3

指定排序算法

sort_values() 提供了参数kind用来指定排序算法。这里有三种排序算法:

  1. mergesort
  2. heapsort
  3. quicksort

默认为 quicksort(快速排序) ,其中 Mergesort 归并排序是最稳定的算法。

例如:

import pandas as pd
import numpy as np

unsorted_df = pd.DataFrame({'col1':[2,1,1,1],'col2':[1,3,2,4]})
sorted_df = unsorted_df.sort_values(by='col1' ,kind='mergesort')
print (sorted_df)

输出结果为:

   col1  col2
1     1     3
2     1     2
3     1     4
0     2     1

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pandas 最常用的两种排序方法 - Python技术站

(1)
上一篇 2023年3月4日
下一篇 2023年3月5日

相关文章

  • Python中的pandas.concat()函数

    pandas是Python中一个用于数据处理和分析的强大库。其中,pandas.concat()函数可以将多个DataFrame或Series对象连接在一起。本文将详细讲解如何使用pandas.concat()函数,并提供示例代码。 1. pandas.concat()函数的参数 pandas.concat()函数有许多可选参数,以下为主要参数: objs:…

    python-answer 2023年3月27日
    00
  • 如何使用Regex从给定的Pandas DataFrame的单词中删除重复的字符

    使用正则表达式(Regex)从 Pandas DataFrame 中删除重复字符的方法如下: 加载数据:首先使用 Pandas 加载需要处理的数据。假设我们有一个简单的 DataFrame,其中包含一列文本数据: import pandas as pd df = pd.DataFrame({ ‘text’: [‘aaabbbccc’, ‘dddd’, ‘ee…

    python-answer 2023年3月27日
    00
  • 改变一个列或Pandas系列的数据类型

    改变一个列或Pandas系列的数据类型,一般可以使用Pandas的astype()方法实现。astype()可以将一列或整个Dataframe中的数据类型进行转换。 以下是改变Pandas系列数据类型的完整攻略: 1. 确定Pandas系列 使用Pandas中的Series()方法创建一个系列: import pandas as pd data = pd.S…

    python-answer 2023年3月27日
    00
  • pandas to_excel 添加颜色操作

    当我们使用pandas将数据导出到Excel时,有时候希望能够对导出的Excel文件的某些单元格进行涂色,使得该文件更加易于读取和理解。本文将详细讲解如何使用python的pandas库实现对Excel文件的颜色添加操作。 步骤一:导入必要的模块 我们在使用pandas库之前需要先安装,并导入必要的模块。在这里,我们需要用到pandas,openpyxl以及…

    python 2023年5月14日
    00
  • Python pandas之多级索引取值详解

    Python pandas之多级索引取值详解 什么是多级索引 多级索引(MultiIndex)是pandas中用于处理具有分层级别的索引的方法。分层索引可以为数据带来很多好处,比如增强数据的可读性、支持高效的选取和分组运算、支持多维度聚合等等。 在pandas中,多级索引的对象是MultiIndex,它类似于DataFrame和Series的索引,但是可以由…

    python 2023年5月14日
    00
  • 如何用Python制作微信好友个性签名词云图

    制作微信好友个性签名词云图是一项很有趣的Python项目。下面是详细的制作攻略。 1. 准备数据 要制作词云图,首先需要获取微信好友的签名数据。可以使用itchat这个Python库来获取微信好友信息。使用以下代码获取微信好友信息并将签名数据保存到文本文件中: import itchat # 登录微信 itchat.auto_login() # 获取好友列表…

    python 2023年5月14日
    00
  • Python中的pandas.isna()函数

    当我们在处理数据的时候,经常会遇到一些缺失值(NaN,None),这些缺失值会导致很多问题和错误,比如计算结果不准确,无法进行可视化,等等。而pandas库中的isna()函数就可以非常方便地判断一个数据是否为缺失值。 函数用法 pandas.isna(obj) 该函数的作用是判断数据是否为缺失值。 参数说明 obj:要判断的数据。 返回值 如果数据是缺失值…

    python-answer 2023年3月27日
    00
  • Pandas之groupby( )用法笔记小结

    Pandas是Python中最流行的数据分析库之一,它提供了许多数据操作和处理的工具。其中一个重要的方法就是groupby()函数。 groupby()函数的基本用法 groupby()函数可以将数据按照某个或多个列进行分组,并将分组后的数据进行聚合处理。基本用法如下: df.groupby(by=None, axis=0, level=None, as_i…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部