一款高性能Python数据处理工具

本文详细介绍了Polars库的安装、基本用法,包括数据创建、加载、筛选、转换、聚合、连接以及自定义函数的使用。通过实例演示,帮助读者掌握如何高效处理大规模数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1

   

简介

Polars 是一个开源的 Python 库,是一个高性能数据处理库,提供了类似于 Pandas 的 API 接口。它在处理大规模数据时表现出色,能够快速执行各种数据操作,如筛选、转换、连接等。

2

   

安装

要安装 Polars 库,可以使用 pip 命令

pip install polars pyarrow

3

   

基本使用

下面我们来看看 Polars 库的基本使用方法及示例

3.1

   

创建和加载数据

在 Polars 中,可以使用 polars.DataFrame 对象来表示数据。可以通过多种方式创建和加载数据,如手动创建、从 CSV 文件加载、从 Pandas DataFrame 转换等。以下是一些常用的示例代码

import polars as pl
import pandas as pd


# 创建DataFrame
df = pl.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie'],
    'age': [25, 30, 35]
})


# 从CSV文件加载数据
# df = pl.read_csv('data.csv')


# 从Pandas DataFrame转换
pandas_df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 35]})
df = pl.from_pandas(pandas_df)
print(df)

代码执行的结果为

0e38cfccb872c877dadaee717acca57c.jpeg

3.2

   

数据筛选和过滤

Polars 提供了灵活的筛选和过滤功能,可以根据条件选择特定的行或列。以下是一些示例代码

# 根据条件筛选
filtered_df = df.filter(pl.col("age") > 30)


# 根据条件筛选列
selected_df = df[['name', 'age']]
print(selected_df)


# 使用多个条件筛选
filtered_df = df.filter((pl.col("age") > 30) & (pl.col("name") == "Bob"))
print(filtered_df)

3bbf44afcef56bf0d780903ec70de84a.jpeg

3.3

   

数据转换

Polars 提供了丰富的数据转换和操作功能,如添加新列、重命名列、排序等。以下是一些示例代码

# 添加新列height
df = df.with_columns(pl.Series('height', [160, 170, 180]))


# 重命名age列
df = df.with_columns(pl.col('age').alias('years'))


# 按列进行排序
sorted_df = df.sort('age')
print(sorted_df)

c2cd49b78667888a42687e0bb4f68fff.jpeg

3.4

   

数据聚合和分组

Polars 支持灵活的数据聚合和分组操作,可以根据指定的列对数据进行分组,并进行各种聚合操作,如求和、计数、平均值等。以下是一些示例代码

import polars as pl


# 创建DataFrame
df = pl.DataFrame({
    'name': ['fish', 'meat', 'fish', 'meat'],
    'price': [25, 30, 35, 40]
})


# 按name列分组,并计算每个类别的平均售价
grouped_df = df.group_by('name').agg(pl.col('price').mean())
print(grouped_df)

560678d357653035ebc4ef8abc073488.jpeg

3.5

   

数据连接

Polars 提供了多种数据连接的方法,如合并两个 DataFrame、连接两个 DataFrame 等。以下是一个示例代码

import polars as pl


# 创建DataFrame
df = pl.DataFrame({
    'name': ['fish', 'meat'],
    'price': [25, 30]
})


df1 = pl.DataFrame({
    'name': ['beef', 'vegetable'],
    'price': [65, 10]
})


# 连接两个DataFrame
joined_df = df.join(df1, on='name', how="outer")
print(joined_df)

0ae4ab0e55a1fc535509bd446ff78ead.jpeg

3.6

   

自定义函数和映射

在 Polars 中,可以使用自定义函数和映射来对数据进行复杂的转换和操作。以下是一个示例代码

import polars as pl


# 创建DataFrame
df = pl.DataFrame({
    'name': ['Alice', 'Bob', 'Charlie'],
    'age': [25, 30, 35]
})


# 定义自定义函数
def double_age(age):
    return age * 2


# 应用自定义函数
df = df.with_columns(pl.col('age').map_batches(double_age).alias("double_age"))
print(df)

c9b637cbafaca99f8a83d700299bb5aa.jpeg

4

   

总结

在本文中,我们深入介绍了 Polars 库的基本原理和使用方法,并提供了相应的代码示例。通过学习 Polars 库,你将能够高效地处理和分析大规模数据,提高工作效率。更多详细信息可参考官方文档: https://github.com/pola-rs/polars。

5

   

免费社群

5e0b55e3a6908a965a506e37e99972cd.jpeg

fdd55461304618c4c8c01ce62489b4d0.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

迷途小书童的Note

请博主喝矿泉书!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值