按两列或多列对Pandas数据框架进行排序

  • Post category:Python

按两列或多列对Pandas数据框架进行排序,可以使用Pandas库中的sort_values()方法。sort_values()方法既可以按一个列排序,也可以同时按多个列排序。

在sort_values()方法中,我们需要指定要排序的列名,以及排序方式(升序或降序)。可以使用sort_values()默认的升序排序方式,也可以使用“ascending=False”参数指定降序排序方式。

下面是一个按两列排序的实例代码:

import pandas as pd

# 创建一个包含3个人的DataFrame,包含姓名、国籍和年龄信息
df = pd.DataFrame({'Name': ['Tom', 'Andy', 'John'],
                   'Nationality': ['USA', 'France', 'USA'],
                   'Age': [35, 25, 30]})

# 按照国籍和年龄排序
df_sorted = df.sort_values(by=['Nationality', 'Age'], ascending=[True, False])

print(df_sorted)

上述代码中,我们首先创建了一个包含3个人的DataFrame,包含“Name”、“Nationality”和“Age”三个字段。接着,我们指定按照“Nationality”和“Age”两个字段排序,其中“Nationality”使用升序排序、“Age”使用降序排序。最后,我们使用print()函数输出排序后的DataFrame。

输出结果如下:

   Name Nationality  Age
2  John         USA   30
0   Tom         USA   35
1  Andy      France   25

可以看到,排序后的DataFrame首先按照国籍进行了升序排序,然后在各自的国籍中按照年龄进行了降序排序。

值得注意的是,sort_values()方法默认使用inplace=False,因此不会改变原有的DataFrame,而是会返回一个新的DataFrame。如果需要将排序结果保存到原有的DataFrame中,可以使用inplace=True参数。