Pandas DataFrame.sort()使用介绍

本文概述

  • 按实际值
  • 参数
我们可以通过以下几种有效地在DataFrame中执行排序:
  • 按标签
  • 按实际值
在解释这两种排序之前, 首先我们必须将数据集用于演示:
import pandas as pdimport numpy as npinfo=pd.DataFrame(np.random.randn(10, 2), index=[1, 3, 7, 2, 4, 5, 9, 8, 0, 6], columns=['col2', 'col1'])print(info)

输出
col2col11-0.456763-0.93115630.242766-0.79359071.1338030.4543632-0.843520-0.9382684-0.018571-0.3159725-1.951544-1.3001009-0.7114990.03149181.6480800.69563702.576250-0.6251716-0.3017170.879970

在上面的DataFrame中, 标签和值未排序。因此, 让我们看看如何对其进行排序:
  • 按标签
可以使用sort_index()方法对DataFrame进行排序。可以通过传递轴参数和排序顺序来完成。默认情况下, 按升序对行标签进行排序。
例子
import pandas as pdimport numpy as npinfo=pd.DataFrame(np.random.randn(10, 2), index=[1, 2, 5, 4, 8, 7, 9, 3, 0, 6], columns = ['col4', 'col3'])info2=info.sort_index()print(info2)

输出
col4col300.6983461.89757311.247655-1.2089082-0.469820-0.5469183-0.7934450.3620204-1.184855-1.59648951.500156-0.3976356-1.239635-0.25554571.110986-0.6817288-1.7974740.10884090.0630481.512421

  • 排序顺序
可以通过将布尔值传递给升序参数来控制排序顺序。
例:
import pandas as pdimport numpy as npinfo= pd.DataFrame(np.random.randn(10, 2), index=[1, 4, 7, 2, 5, 3, 0, 8, 9, 6], columns = ['col4', 'col5'])info_2 = info.sort_index(ascending=False)print(info)

输出
col4col510.664336-1.8465334-0.456203-1.25531170.537063-0.7743842-1.9374550.25731550.331764-0.7410203-0.0823340.3043900-0.983810-0.71158280.208479-1.23464090.6560630.12272060.347990-0.410401

  • 排序列:
我们可以通过将轴参数传递给其值0或1来对列标签进行排序。默认情况下, 轴= 0, 它按行排序。
例:
import pandas as pdimport numpy as np info = pd.DataFrame(np.random.randn(10, 2), index=[1, 4, 8, 2, 0, 6, 7, 5, 3, 9], columns = ['col4', 'col7'])info_2=info.sort_index(axis=1)print(info_2)

输出
col4col71-0.509367-1.6095144-0.5167310.3973758-0.201157-0.00986421.4405671.05843600.955486-0.0097776-1.2111330.41514770.0956440.5317275-0.881241-0.87134230.206327-1.15472491.4181270.146788

按实际值这是另一种可以在DataFrame中执行排序的方法。与索引排序类似, sort_values()是一种用于按值排序的方法。
它还提供了一项功能, 我们可以在其中指定要对值进行排序的DataFrame的列名。通过传递” by” 参数来完成。
例:
import pandas as pdimport numpy as npinfo = pd.DataFrame({'col1':[7, 1, 8, 3], 'col2':[8, 12, 4, 9]})info_2 = info.sort_values(by='col2')print(info_2)

输出
col1col22840783391112

【Pandas DataFrame.sort()使用介绍】在上面的输出中, 观察到这些值仅在col2中排序, 并且相应的col1值和行索引将与col2一起更改。因此, 它们看起来没有分类。
参数
  • 列:排序之前, 你必须传递一个对象或列名。
  • 升序:传递一个布尔值, 该值负责按升序排序。其默认值为True。
  • 轴:0或索引; 1或” 列” 。默认值为0。它决定是按索引还是按列排序。
  • inplace:传递布尔值。默认值为false。它将修改此对象的任何其他视图, 并且在对DataFrame进行排序时不会创建新实例。
  • 种类:” 堆排序” , “ 合并排序” , “ 快速排序” 。它是一个可选参数, 仅在对单个列或标签进行排序时才应用。
  • na_position:” 第一” , “ 最后” 。 “ 第一个” 将NaN放在开头, 而” 最后一个” 将NaN放在结尾。默认选项为最后。

    推荐阅读