如何通过索引和列对Pandas数据框架进行排序

  • Post category:Python

当我们对一个 Pandas 数据框架进行数据处理、筛选等操作时,经常需要对数据进行排序。这里,我们将介绍如何通过索引和列对 Pandas 数据框架进行排序。

通过行索引进行排序

按照索引升序排列

使用Pandas的sort_index()方法可以按行索引进行排序,并将其存储在一个新数据框架中。

例如,假设我们有以下数据框架:

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Candy', 'David', 'Edgar'],
        'age': [21, 25, 18, 27, 20],
        'score': [90, 80, 85, 88, 92]}

df = pd.DataFrame(data, index=['c', 'a', 'b', 'e', 'd'])
print(df)

输出结果:

    name  age  score
c  Alice   21     90
a    Bob   25     80
b  Candy   18     85
e  David   27     88
d  Edgar   20     92

可以看到,我们的数据框架有五个行索引分别为 ‘c’, ‘a’, ‘b’, ‘e’, ‘d’。

现在,我们将按行索引进行升序排列,代码如下:

df_sort_index = df.sort_index()
print(df_sort_index)

输出结果:

    name  age  score
a    Bob   25     80
b  Candy   18     85
c  Alice   21     90
d  Edgar   20     92
e  David   27     88

结果表明,我们的数据框架已经按行索引升序排列了。

按照索引降序排列

如果需要按行索引降序排列,可以使用传递参数“ascending=False”的sort_index()方法,代码如下:

df_sort_desc_index = df.sort_index(ascending=False)
print(df_sort_desc_index)

输出结果:

    name  age  score
e  David   27     88
d  Edgar   20     92
c  Alice   21     90
b  Candy   18     85
a    Bob   25     80

通过列进行排序

按单列升序排列

要按列升序或降序排列,可以使用sort_values()方法。以下是按列升序排序的代码示例:

df_sort_values = df.sort_values('age')
print(df_sort_values)

输出结果:

    name  age  score
b  Candy   18     85
d  Edgar   20     92
c  Alice   21     90
a    Bob   25     80
e  David   27     88

排序时,我们传递age列的名称作为要排序的依据。

按多列升序排列

如果要按多个列进行排序,可以使用sort_values()方法中的by参数。例如,以下代码演示了如何在age和score列上进行排序:

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

输出结果:

    name  age  score
b  Candy   18     85
d  Edgar   20     92
c  Alice   21     90
a    Bob   25     80
e  David   27     88

结果表明,数据框架首先根据age列排序,然后使用score列进行二次排序。

按单列降序排列

下面我们演示如何在特定列上按降序排序。以下是按score列降序排序的代码示例:

df_sort_dec = df.sort_values('score', ascending=False)
print(df_sort_dec)

输出结果:

    name  age  score
d  Edgar   20     92
c  Alice   21     90
e  David   27     88
b  Candy   18     85
a    Bob   25     80

结果表明,数据框架根据分数得分进行降序排序。

综上所述,了解了以上几种排序方式,我们就可以根据具体情况进行选择和使用。