当前位置: 首页> 健康> 知识 > Pandas升级版 Polars库简介及教程

Pandas升级版 Polars库简介及教程

时间:2025/7/12 20:15:27来源:https://blog.csdn.net/SuiZuoZhuLiu/article/details/139888897 浏览次数:0次

Python库Polars简介及教程

简介

Polars是一个高性能的DataFrame库,专为处理大型数据集和进行复杂数据操作而设计。与传统的pandas库相比,Polars在速度和内存效率方面具有显著优势。这得益于其底层基于Apache Arrow的列式存储格式和Rust编写的核心引擎,使得Polars在处理数据时更加高效。

主要特点
  1. 高性能:通过并行处理和优化的数据结构,Polars能够极大地提升数据操作速度。
  2. 低内存消耗:利用Apache Arrow的列式存储格式,Polars在处理大数据时内存占用更低。
  3. 简洁API:提供类似pandas的API,易于上手,同时支持更多高级功能。
  4. 灵活性:支持复杂的数据操作和查询,适合大数据分析和机器学习前的数据处理。

为什么要放弃Pandas改用Polars?

1. 性能和内存效率

Polars 采用Rust编写和Apache Arrow列式存储格式,支持并行计算,这使得它在处理大数据集时表现出色。相比之下,Pandas 使用Python编写,虽然功能全面,但在处理大数据时性能和内存使用效率较低。

2. 计算速度

Polars的并行计算能力使得在处理数据时更快,尤其是在执行复杂的查询和数据操作时。Pandas则是单线程计算,在大数据集下可能会遇到性能瓶颈。

3. API设计

Polars提供类似Pandas的API,但支持链式操作和懒加载,这使得代码更加简洁和高效。虽然Pandas的API设计成熟且功能全面,但在某些复杂操作上需要更多的代码来实现。

4. 内存管理

Polars利用Apache Arrow的列式存储格式,能够有效降低内存消耗。这对于处理内存受限的大数据集特别有用。Pandas则采用行式存储,在处理大数据时内存使用较高。

5. 灵活性和扩展性

Polars不仅适合数据分析,还能轻松扩展到机器学习前的数据处理。而且,Polars与其他高性能计算工具(如Apache Arrow)有很好的兼容性。Pandas虽然也很灵活,但在某些高性能需求的场景下,Polars表现更为出色。

安装

要安装Polars,可以使用pip:

pip install polars

教程

以下是如何使用Polars进行基本数据操作的教程。

1. 导入库

In [1]:

import polars as pl
2. 创建DataFrame

创建一个简单的DataFrame:

In [2]:

# 创建DataFrame
data = {"name": ["Alice", "Bob", "Charlie"],"age": [25, 30, 35],"city": ["New York", "Los Angeles", "Chicago"]
}
df = pl.DataFrame(data)
print(df)
shape: (3, 3)
┌─────────┬─────┬─────────────┐
│ name    ┆ age ┆ city        │
│ ---     ┆ --- ┆ ---         │
│ str     ┆ i64 ┆ str         │
╞═════════╪═════╪═════════════╡
│ Alice   ┆ 25  ┆ New York    │
│ Bob     ┆ 30  ┆ Los Angeles │
│ Charlie ┆ 35  ┆ Chicago     │
└─────────┴─────┴─────────────┘
3. 数据选择

选择DataFrame中的特定列:

In [3]:

age_city_df = df.select(["age", "city"])
print(age_city_df)
shape: (3, 2)
┌─────┬─────────────┐
│ age ┆ city        │
│ --- ┆ ---         │
│ i64 ┆ str         │
╞═════╪═════════════╡
│ 25  ┆ New York    │
│ 30  ┆ Los Angeles │
│ 35  ┆ Chicago     │
└─────┴─────────────┘
4. 过滤数据

根据条件过滤数据:

In [4]:

# 过滤数据
filtered_df = df.filter(pl.col("age") > 30)
print(filtered_df)
shape: (1, 3)
┌─────────┬─────┬─────────┐
│ name    ┆ age ┆ city    │
│ ---     ┆ --- ┆ ---     │
│ str     ┆ i64 ┆ str     │
╞═════════╪═════╪═════════╡
│ Charlie ┆ 35  ┆ Chicago │
└─────────┴─────┴─────────┘
5. 数据聚合

对数据进行聚合操作:

In [5]:

# 聚合数据
grouped_df = df.group_by("city").agg([pl.col("age").mean().alias("average_age")
])
print(grouped_df)
shape: (3, 2)
┌─────────────┬─────────────┐
│ city        ┆ average_age │
│ ---         ┆ ---         │
│ str         ┆ f64         │
╞═════════════╪═════════════╡
│ Chicago     ┆ 35.0        │
│ New York    ┆ 25.0        │
│ Los Angeles ┆ 30.0        │
└─────────────┴─────────────┘
6. 数据连接

连接两个DataFrame:

In [6]:

# 创建第二个DataFrame
data2 = {"city": ["New York", "Los Angeles", "Chicago"],"population": [8000000, 4000000, 2700000]
}
df2 = pl.DataFrame(data2)# 连接DataFrame
joined_df = df.join(df2, on="city")
print(joined_df)
shape: (3, 4)
┌─────────┬─────┬─────────────┬────────────┐
│ name    ┆ age ┆ city        ┆ population │
│ ---     ┆ --- ┆ ---         ┆ ---        │
│ str     ┆ i64 ┆ str         ┆ i64        │
╞═════════╪═════╪═════════════╪════════════╡
│ Alice   ┆ 25  ┆ New York    ┆ 8000000    │
│ Bob     ┆ 30  ┆ Los Angeles ┆ 4000000    │
│ Charlie ┆ 35  ┆ Chicago     ┆ 2700000    │
└─────────┴─────┴─────────────┴────────────┘
结论

Polars通过其高性能和低内存消耗,成为处理大数据集和进行复杂数据操作的理想选择。无论是基本的数据操作,还是复杂的数据查询和聚合,Polars都提供了强大的功能和简洁的API。

关键字:Pandas升级版 Polars库简介及教程

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: