📜  排序列数据框 - Python (1)

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

排序列数据框 - Python

在Python中,用于处理数据的常用工具之一是数据框。数据框是一个二维表,每个列可以有不同的类型(例如整数、浮点数、字符串等)。 Pandas是Python中一个专门用于数据处理的库,它提供了DataFrames类来处理数据框。

排序数据框是其中一个常见操作,本文将介绍在Python中如何对数据框进行排序操作。

准备数据

首先,我们准备一个包含若干数据的数据框。

import pandas as pd
  
data = {'name': ['Tom', 'Jane', 'Bob', 'Mary', 'Alice'],
        'grade': [70, 80, 60, 85, 75],
        'age': [18, 19, 20, 18, 19]}
df = pd.DataFrame(data)

输出结果为:

| | name | grade | age | |---|-------|-------|-----| | 0 | Tom | 70 | 18 | | 1 | Jane | 80 | 19 | | 2 | Bob | 60 | 20 | | 3 | Mary | 85 | 18 | | 4 | Alice | 75 | 19 |

现在我们想按照grade列进行升序排列。

升序排序

我们可以使用sort_values()方法根据指定列进行升序排序。默认情况下,排序会按升序进行。

df_sort_grade = df.sort_values(by=['grade'])
print(df_sort_grade)

输出结果为:

| | name | grade | age | |---|-------|-------|-----| | 2 | Bob | 60 | 20 | | 0 | Tom | 70 | 18 | | 4 | Alice | 75 | 19 | | 1 | Jane | 80 | 19 | | 3 | Mary | 85 | 18 |

在这里,我们传递了一个列表by=['grade']sort_values()方法,告诉它按照grade列排序。然后,我们使用print()函数输出数据框。

降序排序

如果我们要按照降序排序,则需要在sort_values()方法中指定ascending=False参数。例如,按照grade列进行降序排序:

df_sort_grade_desc = df.sort_values(by=['grade'], ascending=False)
print(df_sort_grade_desc)

输出结果为:

| | name | grade | age | |---|-------|-------|-----| | 3 | Mary | 85 | 18 | | 1 | Jane | 80 | 19 | | 4 | Alice | 75 | 19 | | 0 | Tom | 70 | 18 | | 2 | Bob | 60 | 20 |

在这里,我们传递了ascending=False参数告诉sort_values()方法按照降序排列grade列。

多列排序

当我们遇到多列排序时,可以传递一个列名称的列表。例如,我们可以对grade列进行降序排序,对age列进行升序排序:

df_sort_grade_age = df.sort_values(by=['grade', 'age'], ascending=[False, True])
print(df_sort_grade_age)

输出结果为:

| | name | grade | age | |---|-------|-------|-----| | 3 | Mary | 85 | 18 | | 1 | Jane | 80 | 19 | | 4 | Alice | 75 | 19 | | 0 | Tom | 70 | 18 | | 2 | Bob | 60 | 20 |

在这里,我们传递了两个列表。第一个列表按照降序排列grade列,第二个列表按照升序排列age列。

结论

通过本文,我们学习了如何在Python中对数据框进行排序。我们了解了如何对单个列进行升序和降序排序,以及如何对多个列进行排序。这些技能对于处理和分析数据框是非常重要的。