Polars DataFrame 教程
最后修改时间:2025年3月1日
Polars 是一个快速、高效的 Python DataFrame 库。它专为高性能数据操作和分析而设计。本教程通过实际示例介绍如何使用 Polars DataFrame。
Polars 提供了类似于 Pandas 的 DataFrame API,但性能更佳。它针对大型数据集进行了优化,并支持惰性求值以实现高效的查询执行。
创建 DataFrame
此示例演示如何从字典创建 Polars DataFrame。
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 中。
import polars as pl df = pl.read_csv('data.csv') print(df)
pl.read_csv()
函数将 CSV 文件读取到 DataFrame 中。这对于从文件中加载大型数据集非常有用。
过滤行
此示例演示如何在 Polars DataFrame 中过滤行。
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 中选择特定列。
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 添加新列。
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 添加新列。这对于创建派生数据非常有用。
分组和聚合
此示例演示如何对数据进行分组并计算聚合统计信息。
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 进行排序。
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。
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 DataFrame 进行数据分析。
作者
所有 Polars 教程列表。