📅  最后修改于: 2023-12-03 15:33:24.510000             🧑  作者: Mango
Pandas 是一个用于数据分析的 Python 库,可以对数据进行处理、清洗、转换等操作。在处理数据时,常常需要按照某一列对数据进行排序,这时就可以使用 Pandas 提供的排序函数来实现。
本文将介绍如何使用 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'
,即将缺失值排在后面。我们可以使用 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
除了升序排列,我们还可以使用 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
在排序时,我们也可以按照多个列进行排序。例如,以下是一个包含姓名、年龄和城市的数据帧:
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 按列对数据帧进行排序的介绍。通过本文的学习,你将掌握按照单个或多个列对数据进行排序的方法,对后续数据分析和挖掘具有重要意义。