📅  最后修改于: 2023-12-03 15:10:10.259000             🧑  作者: Mango
在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中对数据框进行排序。我们了解了如何对单个列进行升序和降序排序,以及如何对多个列进行排序。这些技能对于处理和分析数据框是非常重要的。