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 教程列表。