ZetCode

Polars DataFrame 教程

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

Polars 是一个快速、高效的 Python DataFrame 库。它专为高性能数据操作和分析而设计。本教程通过实际示例介绍如何使用 Polars DataFrame。

Polars 提供了类似于 Pandas 的 DataFrame API,但性能更佳。它针对大型数据集进行了优化,并支持惰性求值以实现高效的查询执行。

创建 DataFrame

此示例演示如何从字典创建 Polars DataFrame。

create_df.py
import polars as pl

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'Los Angeles', 'Chicago']
}

df = pl.DataFrame(data)
print(df)

pl.DataFrame() 函数从字典创建 DataFrame。这对于小型数据集或快速原型设计非常有用。

读取 CSV 文件

此示例演示如何将 CSV 文件读取到 Polars DataFrame 中。

read_csv.py
import polars as pl

df = pl.read_csv('data.csv')
print(df)

pl.read_csv() 函数将 CSV 文件读取到 DataFrame 中。这对于从文件中加载大型数据集非常有用。

过滤行

此示例演示如何在 Polars DataFrame 中过滤行。

filter_rows.py
import polars as pl

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'Los Angeles', 'Chicago']
}

df = pl.DataFrame(data)
filtered_df = df.filter(pl.col('Age') > 30)
print(filtered_df)

filter() 方法根据条件过滤行。这对于选择数据的特定子集非常有用。

选择列

此示例演示如何在 Polars DataFrame 中选择特定列。

select_columns.py
import polars as pl

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'Los Angeles', 'Chicago']
}

df = pl.DataFrame(data)
selected_df = df.select(['Name', 'City'])
print(selected_df)

select() 方法从 DataFrame 中选择特定列。这对于关注相关数据非常有用。

添加新列

此示例演示如何向 Polars DataFrame 添加新列。

add_column.py
import polars as pl

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'Los Angeles', 'Chicago']
}

df = pl.DataFrame(data)
df = df.with_column((pl.col('Age') * 2).alias('DoubleAge'))
print(df)

with_column() 方法向 DataFrame 添加新列。这对于创建派生数据非常有用。

分组和聚合

此示例演示如何对数据进行分组并计算聚合统计信息。

group_agg.py
import polars as pl

data = {
    'City': ['New York', 'Los Angeles', 'New York', 'Chicago'],
    'Sales': [100, 200, 150, 300]
}

df = pl.DataFrame(data)
grouped_df = df.groupby('City').agg([
    pl.col('Sales').sum().alias('TotalSales')
])
print(grouped_df)

groupby()agg() 方法对数据进行分组并计算聚合统计信息。这对于汇总数据非常有用。

排序数据

此示例演示如何按列对 Polars DataFrame 进行排序。

sort_data.py
import polars as pl

data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'Los Angeles', 'Chicago']
}

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

sort() 方法按列对 DataFrame 进行排序。这对于以特定顺序组织数据非常有用。

连接 DataFrame

此示例演示如何连接两个 Polars DataFrame。

join_df.py
import polars as pl

data1 = {
    'ID': [1, 2, 3],
    'Name': ['Alice', 'Bob', 'Charlie']
}

data2 = {
    'ID': [1, 2, 4],
    'City': ['New York', 'Los Angeles', 'Chicago']
}

df1 = pl.DataFrame(data1)
df2 = pl.DataFrame(data2)
joined_df = df1.join(df2, on='ID', how='inner')
print(joined_df)

join() 方法根据公共列连接两个 DataFrame。这对于合并相关数据集非常有用。

Polars DataFrame 的最佳实践

来源

Polars 文档

在本文中,我们探讨了如何使用 Polars DataFrame 进行数据分析。

作者

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

所有 Polars 教程列表。