欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

简易教程:如何使用pandas对DataFrame的行进行字母顺序排序

最编程 2024-01-15 10:35:10
...

你可以使用以下方法对pandas DataFrame的行按字母顺序排序。

方法1:按一个列的字母顺序排序

#sort A to Z
df.sort_values('column1')

#sort Z to A
df.sort_values('column1', ascending=False)

方法2:按多列字母顺序排序

#sort by column1 from Z to A, then by column2 from A to Z
df.sort_values(['column1', 'column2'], ascending=(False, True))

下面的例子展示了如何在实践中使用每种方法。

例1:按字母顺序对一列进行排序

假设我们有如下的pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['Mavs', 'Spurs', 'Lakers', 'Nuggets', 'Hawks'],
                   'points': [120, 108, 99, 104, 115]})

#view DataFrame
print(df)

      team  points
0     Mavs     120
1    Spurs     108
2   Lakers      99
3  Nuggets     104
4    Hawks     115

我们可以使用下面的语法对DataFrame的行按团队名称从A到Z进行排序:

#sort by team name A to Z
df_sorted = df.sort_values('team')

#view sorted DataFrame
print(df_sorted)

      team  points
4    Hawks     115
2   Lakers      99
0     Mavs     120
3  Nuggets     104
1    Spurs     108

请注意,现在的行是按球队名称从A到Z排序的。

我们还可以从Z到A进行排序:

#sort by team name Z to A
df_sorted = df.sort_values('team', ascending=False)

#view sorted DataFrame
print(df_sorted)

      team  points
1    Spurs     108
3  Nuggets     104
0     Mavs     120
2   Lakers      99
4    Hawks     115

我们还可以使用reset_index()函数来重置排序后的DataFrame中的索引值:

#sort by team name A to Z and reset index
df_sorted = df.sort_values('team').reset_index(drop=True)

#view sorted DataFrame
print(df_sorted)

      team  points
0    Hawks     115
1   Lakers      99
2     Mavs     120
3  Nuggets     104
4    Spurs     108

例2:按多列字母顺序排序

假设我们有下面这个pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'conference': ['West', 'West', 'West', 'East', 'East'],
                   'team': ['Mavs', 'Spurs', 'Lakers', 'Heat', 'Hawks'],
                   'points': [120, 108, 99, 104, 115]})

#view DataFrame
print(df)

  conference    team  points
0       West    Mavs     120
1       West   Spurs     108
2       West  Lakers      99
3       East    Heat     104
4       East   Hawks     115

我们可以使用下面的语法对DataFrame的行按会议名称从A到Z排序,然后按球队名称从Z到A排序:

#sort by conference name A to Z, then by team name Z to A
df_sorted = df.sort_values(['conference', 'team'], ascending=(True, False))

#view sorted DataFrame
print(df_sorted)

  conference    team  points
3       East    Heat     104
4       East   Hawks     115
1       West   Spurs     108
0       West    Mavs     120
2       West  Lakers      99

行按会议名称从A到Z排序,然后按球队名称从Z到A排序。

注意:你可以在这里找到pandas sort_values()函数的完整文档。

其他资源

下面的教程解释了如何在pandas中执行其他常见操作:

Pandas:如何按日期排序
Pandas:如何按名称排序列
Pandas:如何按索引和列排序