一周学会Pandas2 Python数据处理与分析-Pandas2数据排序操作

发布于:2025-05-10 ⋅ 阅读:(19) ⋅ 点赞:(0)

锋哥原创的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 pd

data = {
    '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)

参数说明:

  • axis0 表示按行索引排序(默认),1 表示按列索引排序。

  • ascending:排序顺序,True 为升序,False 为降序(多列时可传入列表指定每列顺序)。

  • inplace:是否直接修改原对象,False 时返回新对象(默认)。

示例:

import pandas as pd

data = {
    '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 pd

data = {
    '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 会丢弃旧索引,生成新索引。


网站公告

今日签到

点亮在社区的每一天
去签到