📜  Pandas DataFrame.sort()(1)

📅  最后修改于: 2023-12-03 15:33:23.519000             🧑  作者: Mango

Pandas DataFrame.sort()

简介

Pandas是Python中一种数据处理库,其中DataFrame是其中的一个数据结构,类似于Excel中的表格。sort()是DataFrame中用于排序的函数,可以按照某一列的数值、字母等进行排序。

使用方法

DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last', ignore_index=False, key=None)

参数说明:

  • by: 可以是列名、数字、名称列表或数组的索引。如果axis为0,则按列排序。如果axis为1,则按行排序。
  • axis: 排序时的维度,0为列,1为行,默认为0。
  • ascending: 是否按升序排序,默认为True。
  • inplace: 是否在原DataFrame中排序,默认为False,即不在原DataFrame中排序,而是返回排序后的新DataFrame。
  • kind: 排序算法,可以有 quicksortmergesortheapsort。 默认为quicksort。
  • na_position: 缺失值的排序方式,默认为last,即放到最后。
  • ignore_index: 是否忽略索引,默认为False,即保留原DataFrame的索引。
  • key: 排序的依据函数,可以自定义。

例子

先创建一个包含成绩和年龄的DataFrame:

import pandas as pd

data = {'name': ['A', 'B', 'C', 'D', 'E'],
        'age': [19, 20, 18, 17, 20],
        'score': [95, 96, 92, 98, 90]}
df = pd.DataFrame(data)

按照成绩升序排列:

df.sort_values(by='score')

输出结果为:

   name  age  score
4     E   20     90
2     C   18     92
0     A   19     95
1     B   20     96
3     D   17     98

如果要按照成绩和年龄两列进行升序排列:

df.sort_values(by=['score', 'age'])

输出结果为:

   name  age  score
4     E   20     90
2     C   18     92
0     A   19     95
1     B   20     96
3     D   17     98

如果要按照年龄降序排列:

df.sort_values(by='age', ascending=False)

输出结果为:

   name  age  score
1     B   20     96
4     E   20     90
0     A   19     95
2     C   18     92
3     D   17     98

如果要在原DataFrame中排序:

df.sort_values(by='name', inplace=True)

此时原DataFrame的顺序已被修改,输出结果为:

   name  age  score
0     A   19     95
1     B   20     96
2     C   18     92
3     D   17     98
4     E   20     90

总结

sort()函数是DataFrame中的一种强大的排序工具,可以直接对DataFrame进行排序。在排序时,需要注意by参数中需要输入排序的列名,同时还可以指定ascending参数实现升序或降序排列。如果要在原DataFrame中排序,需要将inplace参数设置为True。