📜  Python| Pandas Dataframe.sort_values() |第一组(1)

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

Python | Pandas Dataframe.sort_values() | 第一组

Pandas是Python的一个数据处理包,它提供了一些方便的数据结构和数据处理方法。其中DataFrame是Pandas中最为常用的类型之一,它类似于Excel表格,可以方便地对数据进行操作和处理。

sort_values()是Pandas DataFrame中用于排序的函数,可以对DataFrame中的行或列进行排序。本文将介绍如何使用sort_values()在DataFrame中按照指定的列或行排序。

DataFrame.sort_values()函数签名
DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last', ignore_index=False, key=None)
  • by:表示按照哪个键进行排序,可以是单个键或多个键。多个键可以使用列表或元组传递,例如['key1', 'key2']或('key1', 'key2')。
  • axis:表示按照行还是列进行排序,默认值为0(即按行排序)。
  • ascending:表示排序顺序,默认值为True,表示升序排列;False表示降序排列。
  • inplace:表示是否在原地排序,默认值为False,表示不在原地排序,返回排序结果。如果为True,则在原DataFrame上进行排序操作。
  • kind:表示排序方法,支持'quicksort'(快排),'mergesort'(归并排序),'heapsort'(堆排序)。其中'quicksort'是默认的排序方法。
  • na_position:表示缺失值被看作最大还是最小,默认值为'last'(缺失值被视作最大)。还可以设为'first'(缺失值被视作最小)。
  • ignore_index:表示重新编号或保持原编号,默认值为False,表示保持原编号。如果为True,则重新从0开始编号。
  • key:表示排序时的自定义排序函数。可以通过给key指定一个函数来实现自定义排序。
sort_values()示例

考虑以下DataFrame类型的数据:

import pandas as pd

data = {'Name':['Tom', 'Jack', 'Steve', 'Ricky', 'David'],
        'Age':[28, 34, 29, 42, 23],
        'Country':['US', 'Japan', 'Canada', 'Russia', 'UK']}

df = pd.DataFrame(data)
print(df)

输出结果:

    Name  Age Country
0    Tom   28      US
1   Jack   34   Japan
2  Steve   29  Canada
3  Ricky   42  Russia
4  David   23      UK

对该数据进行列排序:

df_sorted = df.sort_values(by=['Age'], ascending=False)
print(df_sorted)

输出结果:

    Name  Age Country
3  Ricky   42  Russia
1   Jack   34   Japan
2  Steve   29  Canada
0    Tom   28      US
4  David   23      UK

对该数据进行行排序:

df_sorted = df.sort_values(by=[3], axis=1, ascending=False)
print(df_sorted)

输出结果:

  Country  Age  Name
0      US   28   Tom
1   Japan   34  Jack
2  Canada   29   NaN
3  Russia   42   NaN
4      UK   23   NaN
注意事项
  • sort_values()默认返回排序后的新DataFrame,不会改变原DataFrame。
  • by参数可以是字符串或者是列表或元组类型。如果是字符串类型,则表示按照该列进行排序;如果是列表或元组类型,则表示按照多个列进行排序,从第1个开始依次排序。
  • 如果DataFrame中存在缺失值,则排序时缺失值会被放到最后或最前。na_position参数用于控制缺失值排序的方式。
  • inplace参数可以改变原DataFrame,但建议使用返回值的方式。