鋒哥原創的Pandas2?Python數據處理與分析 視頻教程:??
2025版 Pandas2 Python數據處理與分析 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili
Pandas 2提供了多種靈活的數據排序方法,主要針對 DataFrame 和 Series 對象。
1. 按值排序:sort_values()
這是最常用的排序方法,根據指定列或行的值進行排序。
具體語法:
DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, na_position='last')
參數說明:
-
by
:要排序的列名(或行索引),可以是單個字符串或列表(多列排序)。 -
axis
:排序方向,0
表示按列排序(默認),1
表示按行排序。 -
ascending
:排序順序,True
為升序,False
為降序(多列時可傳入列表指定每列順序)。 -
inplace
:是否直接修改原對象,False
時返回新對象(默認)。 -
na_position
:缺失值的位置,'last'
(默認)或'first'
。
參考示例:
import pandas as pddata = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],'Age': [25, 30, 22, 28],'Score': [85, 95, 75, 88]
}
df = pd.DataFrame(data)# 單列升序排序
df_sorted = df.sort_values(by='Age')# 多列排序:先按 Score 降序,再按 Age 升序
df_sorted = df.sort_values(by=['Score', 'Age'], ascending=[False, True])
2. 按索引排序:sort_index()
根據索引(行或列標簽)進行排序,常用于時間序列或需要恢復原始順序的場景。
基本語法:
DataFrame.sort_index(axis=0, ascending=True, inplace=False)
參數說明:
-
axis
:0
表示按行索引排序(默認),1
表示按列索引排序。 -
ascending
:排序順序,True
為升序,False
為降序(多列時可傳入列表指定每列順序)。 -
inplace
:是否直接修改原對象,False
時返回新對象(默認)。
示例:
import pandas as pddata = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],'Age': [25, 30, 22, 28],'Score': [85, 95, 75, 88]
}
df = pd.DataFrame(data)# 按行索引降序排序
df_sorted_index = df.sort_index(ascending=False)# 按列索引升序排序
df_sorted_columns = df.sort_index(axis=1)
3. 處理缺失值 (na_position)
在 sort_values
中,可以通過 na_position
控制缺失值的位置:
import pandas as pd
df_with_nan = pd.DataFrame({'A': [2, None, 1]})
df_sorted = df_with_nan.sort_values(by='A', na_position='first') # NaN 排在最前
4. 重置索引
排序后索引可能會混亂,可使用 reset_index()
重置:
import pandas as pddata = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],'Age': [25, 30, 22, 28],'Score': [85, 95, 75, 88]
}
df = pd.DataFrame(data)
df_sorted = df.sort_values(by='Age').reset_index(drop=True)
-
drop=True
會丟棄舊索引,生成新索引。