ZetCode

Polars Select 函数

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

Polars 是一个快速、高效的 Python DataFrame 库。select 函数用于从 DataFrame 中选择特定列。本教程将通过实际示例介绍如何使用 select 函数。

select 函数对于数据操作任务至关重要,例如过滤列、重命名和应用转换。Polars 为这些操作提供了简单直观的 API。

基本列选择

本示例展示了如何从 DataFrame 中选择特定列。

basic_select.py
import polars as pl

df = pl.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
})

selected = df.select(['A', 'B'])
print(selected)

select(['A', 'B']) 从 DataFrame 中选择 'A' 和 'B' 列。这对于聚焦特定数据非常有用。

带重命名的选择

本示例演示了在选择时重命名列。

select_rename.py
import polars as pl

df = pl.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
})

selected = df.select([
    pl.col('A').alias('Column1'),
    pl.col('B').alias('Column2')
])
print(selected)

alias 函数在选择时重命名列。这对于创建更具可读性的列名非常有用。

带表达式的选择

本示例展示了如何在列选择时应用表达式。

select_expression.py
import polars as pl

df = pl.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
})

selected = df.select([
    (pl.col('A') + pl.col('B')).alias('Sum')
])
print(selected)

pl.col('A') + pl.col('B') 表达式计算 'A' 和 'B' 列的总和。这对于创建派生列非常有用。

带过滤的选择

本示例演示了在列选择时过滤行。

select_filter.py
import polars as pl

df = pl.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
})

selected = df.select([
    pl.col('A').filter(pl.col('A') > 1)
])
print(selected)

filter(pl.col('A') > 1) 过滤 'A' 列大于 1 的行。这对于条件数据选择非常有用。

带聚合的选择

本示例展示了如何在列选择时聚合数据。

select_aggregate.py
import polars as pl

df = pl.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
})

selected = df.select([
    pl.col('A').sum().alias('Total')
])
print(selected)

sum 函数计算 'A' 列的总和。这对于汇总数据非常有用。

带多个表达式的选择

本示例演示了使用不同表达式选择多个列。

select_multiple.py
import polars as pl

df = pl.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
})

selected = df.select([
    pl.col('A').alias('Column1'),
    (pl.col('B') * 2).alias('DoubleB')
])
print(selected)

pl.col('B') * 2 表达式将 'B' 列的值加倍。这对于应用多个转换非常有用。

带条件逻辑的选择

本示例展示了如何在列选择时使用条件逻辑。

select_conditional.py
import polars as pl

df = pl.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
})

selected = df.select([
    pl.when(pl.col('A') > 1).then(pl.col('B')).otherwise(0).alias('Result')
])
print(selected)

whenthen 函数应用条件逻辑。这对于创建动态列非常有用。

带字符串操作的选择

本示例演示了在列选择时进行字符串操作。

select_string.py
import polars as pl

df = pl.DataFrame({
    'Name': ['Alice', 'Bob', 'Charlie']
})

selected = df.select([
    pl.col('Name').str.to_uppercase().alias('UppercaseName')
])
print(selected)

str.to_uppercase 函数将名称转换为大写。这对于文本操作非常有用。

带日期操作的选择

本示例展示了如何在列选择时执行日期操作。

select_date.py
import polars as pl

df = pl.DataFrame({
    'Date': ['2023-01-01', '2023-02-01', '2023-03-01']
})

selected = df.select([
    pl.col('Date').str.strptime(pl.Date, '%Y-%m-%d').dt.month().alias('Month')
])
print(selected)

dt.month 函数从日期中提取月份。这对于基于时间的分析非常有用。

带嵌套数据选择

本示例演示了从 DataFrame 中选择嵌套数据。

select_nested.py
import polars as pl

df = pl.DataFrame({
    'A': [1, 2, 3],
    'B': [[4, 5], [6, 7], [8, 9]]
})

selected = df.select([
    pl.col('B').arr.get(0).alias('FirstElement')
])
print(selected)

arr.get(0) 函数从嵌套列表中提取第一个元素。这对于处理复杂数据结构非常有用。

使用 Select 的最佳实践

来源

Polars 文档

在本文中,我们探讨了如何在 Polars 中使用 select 函数。

作者

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

所有 Polars 教程列表。