关键词

如何在Python中对Pandas DataFrame进行多列排序

Pandas DataFrame进行多列排序可以通过sort_values()函数实现。sort_values()函数可以接受多个参数来指定要排序的列及排序方式。

以下是完整攻略:

1. 准备数据

首先需要准备一份数据,用于演示多列排序。我们可以使用Pandas的read_csv()函数读取一份csv格式数据集。

import pandas as pd

# 读取数据
df = pd.read_csv('data.csv')
print(df)

运行结果:

   name   age  score
0   Tom    12     89
1  Jack    15     78
2   Ann    14     92
3  Mike    13     81

2. 单列排序

在进行多列排序之前,我们先来看一下单列排序的实现。我们可以使用sort_values()函数对DataFrame的单列进行排序。

# 按照年龄升序排列
df = df.sort_values(by='age', ascending=True)
print(df)

运行结果:

   name   age  score
0   Tom    12     89
3  Mike    13     81
2   Ann    14     92
1  Jack    15     78

这里by参数指定要排序的列名,ascending参数指定排序方式,True表示升序,False表示降序。

3. 多列排序

接下来我们来看一下如何对DataFrame进行多列排序。我们可以使用sort_values()函数的by参数传入一个列表来指定多个排序列。

# 按照年龄升序、分数降序排列
df = df.sort_values(by=['age', 'score'], ascending=[True, False])
print(df)

运行结果:

   name   age  score
0   Tom    12     89
3  Mike    13     81
2   Ann    14     92
1  Jack    15     78

这里我们同时指定了两个排序列,第一个按照年龄升序排列,第二个按照分数降序排列。ascending参数也变成了一个列表,分别指定每个排序列的排序方式。

4. 多列排序规则

在多列排序时,可以通过添加更多的列来指定排序规则。如果前面的列排序结果相同,则会使用后面的列进行进一步的排序。

# 按照年龄升序、分数降序、名字升序排列
df = df.sort_values(by=['age', 'score', 'name'], ascending=[True, False, True])
print(df)

运行结果:

   name   age  score
0   Tom    12     89
3  Mike    13     81
2   Ann    14     92
1  Jack    15     78

这里我们添加了一个名字列,表示当年龄和分数相同时,按照名字升序排列。

以上就是在Python中对Pandas DataFrame进行多列排序的完整攻略。

本文链接:http://task.lmcjl.com/news/14502.html

展开阅读全文