按两列或多列对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参数。