📜  pandas 按列对数据帧进行排序 - Python (1)

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

Pandas 按列对数据帧进行排序 - Python

Pandas 是一个用于数据分析的 Python 库,可以对数据进行处理、清洗、转换等操作。在处理数据时,常常需要按照某一列对数据进行排序,这时就可以使用 Pandas 提供的排序函数来实现。

本文将介绍如何使用 Pandas 对数据帧按列进行排序。主要涵盖以下内容:

  1. Pandas 排序函数的基本用法
  2. 按单个列进行升序排列
  3. 按单个列进行降序排列
  4. 按多个列进行排序
1. Pandas 排序函数的基本用法

Pandas 提供了 sort_values 函数用于对数据帧进行排序。该函数的基本用法如下:

df.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last')

参数说明:

  • by:指定用于排序的列名或索引名。
  • axis:指定排序方向。0 表示按列排序,1 表示按行排序。
  • ascending:指定是否升序排序。默认为 True,即升序排序。
  • inplace:是否在原数据帧上修改。默认为 False,即不修改原数据帧。
  • kind:指定排序算法。默认为 'quicksort',可以选择 'mergesort''heapsort'
  • na_position:指定缺失值的位置。默认为 'last',即将缺失值排在后面。
2. 按单个列进行升序排列

我们可以使用 sort_values 函数对数据帧按单个列进行升序排序。例如,以下是一个包含姓名和年龄的数据帧:

import pandas as pd

data = {'Name': ['Tom', 'James', 'Ricky', 'Vin', 'Steve', 'Rob', 'Stark', 'Joe'],
        'Age': [25, 26, 25, 23, 30, 29, 23, 25]}

df = pd.DataFrame(data)

下面代码展示如何按照年龄列进行升序排序:

df_sorted = df.sort_values('Age')
print(df_sorted)

输出:

    Name  Age
3    Vin   23
7    Joe   25
0    Tom   25
2  Ricky   25
1  James   26
5    Rob   29
4  Steve   30
6  Stark   23
3. 按单个列进行降序排列

除了升序排列,我们还可以使用 sort_values 函数对数据帧按单个列进行降序排列。例如,以下是一个按照年龄列进行降序排列的例子:

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

输出:

    Name  Age
4  Steve   30
5    Rob   29
1  James   26
0    Tom   25
2  Ricky   25
7    Joe   25
3    Vin   23
6  Stark   23
4. 按多个列进行排序

在排序时,我们也可以按照多个列进行排序。例如,以下是一个包含姓名、年龄和城市的数据帧:

data = {'Name': ['Tom', 'James', 'Ricky', 'Vin', 'Steve', 'Rob', 'Stark', 'Joe'],
        'Age': [25, 26, 25, 23, 30, 29, 23, 25],
        'City': ['Beijing', 'Shanghai', 'Guangzhou', 'Beijing', 'Shanghai', 'Beijing', 'Guangzhou', 'Shanghai']}

df = pd.DataFrame(data)

我们可以使用 sort_values 函数按照多个列进行排序。以下代码展示如何先按照城市升序排列,再按照年龄降序排列:

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

输出:

    Name  Age       City
0    Tom   25    Beijing
3    Vin   23    Beijing
2  Ricky   25  Guangzhou
6  Stark   23  Guangzhou
1  James   26   Shanghai
4  Steve   30   Shanghai
7    Joe   25   Shanghai
5    Rob   29    Beijing

以上就是对 Pandas 按列对数据帧进行排序的介绍。通过本文的学习,你将掌握按照单个或多个列对数据进行排序的方法,对后续数据分析和挖掘具有重要意义。