Pandas DataFrame.sort()

2024 年 8 月 29 日 | 阅读 3 分钟

我们可以通过不同的方式有效地对 DataFrame 进行排序

  • 按标签
  • 按实际值

在解释这两种排序方式之前,首先我们需要获取用于演示的数据集

输出

         col2          col1
1      -0.456763     -0.931156
3       0.242766     -0.793590
7       1.133803      0.454363
2      -0.843520     -0.938268
4      -0.018571     -0.315972
5      -1.951544     -1.300100
9      -0.711499      0.031491
8       1.648080      0.695637
0       2.576250     -0.625171
6      -0.301717      0.879970

在上面的 DataFrame 中,标签和值未排序。所以,让我们看看如何对其进行排序

  • 按标签

可以使用 sort_index() 方法对 DataFrame 进行排序。可以通过传递 axis 参数和排序顺序来完成。默认情况下,按行标签升序排列。

示例

输出

       col4          col3
0     0.698346      1.897573
1     1.247655     -1.208908
2    -0.469820     -0.546918
3    -0.793445      0.362020
4    -1.184855     -1.596489
5     1.500156      -0.397635
6    -1.239635      -0.255545
7     1.110986      -0.681728
8    -1.797474       0.108840
9     0.063048       1.512421
  • 排序顺序

可以通过将布尔值传递给 ascending 参数来控制排序顺序。

示例

输出

        col4          col5
1      0.664336     -1.846533
4     -0.456203     -1.255311
7      0.537063     -0.774384
2     -1.937455      0.257315
5      0.331764     -0.741020
3     -0.082334      0.304390
0     -0.983810     -0.711582
8      0.208479     -1.234640
9      0.656063      0.122720
6      0.347990     -0.410401
  • 对列进行排序

我们可以通过传递与其值 0 或 1 相关的 axis 参数来对列标签进行排序。默认情况下,axis=0,它按行排序。

示例

输出

       col4          col7
1    -0.509367     -1.609514
4    -0.516731      0.397375
8    -0.201157     -0.009864
2     1.440567       1.058436
0     0.955486      -0.009777
6    -1.211133       0.415147
7     0.095644       0.531727
5    -0.881241      -0.871342
3     0.206327       -1.154724
9     1.418127        0.146788

按实际值

这是另一种可以在 DataFrame 中执行排序的方式。与索引排序一样,sort_values() 是一种按值排序的方法。

它还提供了一个功能,我们可以在其中指定 DataFrame 的列名,以根据这些值进行排序。这是通过传递“by”参数来完成的。

示例

输出

     col1    col2
2     8       4
0     7       8
3     3       9
1     1       12

在上面的输出中,观察到值仅在 col2 中排序,并且相应的 col1 值和行索引将随 col2 一起改变。因此,它们看起来是未排序的。

参数

  • columns: 在排序之前,您必须传递一个对象或列名。
  • ascending: 传递一个布尔值,该值负责按升序排序。其默认值为 True。
  • axis: 0 或 index;1 或 'columns'。默认值为 0。它决定您是按索引还是按列排序。
  • inplace: 传递一个布尔值。默认值为 false。它将修改此对象的任何其他视图,并且在对 DataFrame 进行排序时不会创建新实例。
  • kind: 'heapsort', 'mergesort', 'quicksort'。这是一个可选参数,仅在您对单个列或标签进行排序时才适用。
  • na_position: 'first', 'last''first' 将 NaNs 放在开头,而 'last' 将 NaNs 放在结尾。默认选项 last。

下一话题DataFrame.sum()