1. 单列排序
1.1 按单列升序排序
可以使用sort_values
方法按单列进行升序排序。
import pandas as pd
# 创建一个DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David'], 'Age': [24, 27, 22, 32], 'City': ['New York', 'Los Angeles', 'Chicago', 'Houston'], 'Score': [85, 92, 78, 88]}
df = pd.DataFrame(data)
print(df)
# 按Age列升序排序
df_sorted = df.sort_values(by='Age')
print(df_sorted)
输出:
Name Age City Score0 Alice 24 New York 85
2 Charlie 22 Chicago 78
1 Bob 27 Los Angeles 92
3 David 32 Houston 88
1.2 按单列降序排序
可以通过设置ascending=False
参数按单列进行降序排序。
# 按Age列降序排序
df_sorted_desc = df.sort_values(by='Age', ascending=False)
print(df_sorted_desc)
输出:
Name Age City Score3 David 32 Houston 88
1 Bob 27 Los Angeles 92
0 Alice 24 New York 85
2 Charlie 22 Chicago 78
2. 多重排序
多重排序是指按多个列进行排序。可以通过传递一个列名列表给by
参数来实现多重排序。
2.1 按多列升序排序
# 按Age和Score列升序排序
df_sorted_multi = df.sort_values(by=['Age', 'Score'])
print(df_sorted_multi)
输出:
Name Age City Score2 Charlie 22 Chicago 78
0 Alice 24 New York 85
1 Bob 27 Los Angeles 92
3 David 32 Houston 88
2.2 按多列降序排序
可以通过传递一个布尔值列表给ascending
参数来实现按不同列的升序和降序排序。
# 按Age列升序排序,按Score列降序排序
df_sorted_multi_desc = df.sort_values(by=['Age', 'Score'], ascending=[True, False])
print(df_sorted_multi_desc)
输出:
Name Age City Score2 Charlie 22 Chicago 78
0 Alice 24 New York 85
1 Bob 27 Los Angeles 92
3 David 32 Houston 88
3. 按索引排序
除了按列排序,还可以按索引进行排序。
3.1 按索引升序排序
# 按索引升序排序
df_sorted_index = df.sort_index()
print(df_sorted_index)
输出:
Name Age City Score0 Alice 24 New York 85
1 Bob 27 Los Angeles 92
2 Charlie 22 Chicago 78
3 David 32 Houston 88
3.2 按索引降序排序
# 按索引降序排序
df_sorted_index_desc = df.sort_index(ascending=False)
print(df_sorted_index_desc)
输出:
Name Age City Score3 David 32 Houston 88
2 Charlie 22 Chicago 78
1 Bob 27 Los Angeles 92
0 Alice 24 New York 85