ZetCode

Polars 排序数据

最后修改时间:2025年3月1日

Polars 是一个快速高效的 Python DataFrame 库。数据排序是数据分析中的常见操作。本教程通过实际示例介绍如何在 Polars 中排序数据。

排序有助于组织数据,以便更好地分析和可视化。Polars 提供了 sortsort_by 等方法来排序 DataFrames。

基本排序

此示例展示了如何按单列对 DataFrame 进行排序。

basic_sort.py
import polars as pl

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David'],
    'Age': [25, 30, 22, 35]
}

df = pl.DataFrame(data)
sorted_df = df.sort('Age')

print(sorted_df)

sort('Age') 按 'Age' 列升序对 DataFrame 进行排序。这对于按特定属性组织数据非常有用。

降序排序

此示例演示了如何按降序对 DataFrame 进行排序。

descending_sort.py
import polars as pl

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David'],
    'Age': [25, 30, 22, 35]
}

df = pl.DataFrame(data)
sorted_df = df.sort('Age', reverse=True)

print(sorted_df)

sort('Age', reverse=True) 按 'Age' 列降序对 DataFrame 进行排序。这对于对数据进行排名非常有用。

按多列排序

此示例展示了如何按多列对 DataFrame 进行排序。

multi_column_sort.py
import polars as pl

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David'],
    'Age': [25, 30, 22, 25],
    'Salary': [50000, 60000, 45000, 55000]
}

df = pl.DataFrame(data)
sorted_df = df.sort(['Age', 'Salary'])

print(sorted_df)

sort(['Age', 'Salary']) 首先按 'Age' 排序,然后按 'Salary' 排序 DataFrame。这对于层次化排序非常有用。

带空值的排序

此示例演示了如何对带空值的 DataFrame 进行排序。

null_sort.py
import polars as pl

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David'],
    'Age': [25, None, 22, 35]
}

df = pl.DataFrame(data)
sorted_df = df.sort('Age', nulls_last=True)

print(sorted_df)

sort('Age', nulls_last=True) 将空值放在最后进行 DataFrame 排序。这对于处理缺失数据非常有用。

按表达式排序

此示例展示了如何使用表达式对 DataFrame 进行排序。

expression_sort.py
import polars as pl

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David'],
    'Age': [25, 30, 22, 35]
}

df = pl.DataFrame(data)
sorted_df = df.sort(pl.col('Age') * -1)

print(sorted_df)

sort(pl.col('Age') * -1) 使用表达式按 'Age' 降序对 DataFrame 进行排序。这对于自定义排序逻辑非常有用。

自定义顺序排序

此示例演示了如何使用自定义顺序对 DataFrame 进行排序。

custom_order_sort.py
import polars as pl

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David'],
    'Age': [25, 30, 22, 35]
}

df = pl.DataFrame(data)
sorted_df = df.sort('Name', descending=[False, True])

print(sorted_df)

sort('Name', descending=[False, True]) 使用自定义顺序按 'Name' 对 DataFrame 进行排序。这对于特定的排序要求非常有用。

按索引排序

此示例展示了如何按其索引对 DataFrame 进行排序。

index_sort.py
import polars as pl

data = {
    'Name': ['Alice', 'Bob', 'Charlie', 'David'],
    'Age': [25, 30, 22, 35]
}

df = pl.DataFrame(data)
sorted_df = df.sort(by='index', reverse=True)

print(sorted_df)

sort(by='index', reverse=True) 按其索引降序对 DataFrame 进行排序。这对于重新排列行非常有用。

数据排序最佳实践

来源

Polars 文档

在本文中,我们探讨了如何在 Polars 中对数据进行排序。

作者

我的名字是 Jan Bodnar,我是一位充满激情的程序员,拥有丰富的编程经验。自 2007 年以来,我一直撰写编程文章。迄今为止,我已撰写了 1,400 多篇文章和 8 本电子书。我在编程教学方面拥有十多年的经验。

所有 Polars 教程列表。