再见Pandas,来试试Polars吧!

比起 Pandas, 你更需要 Polars:详细指南 在数据分析领域,Python 由于其多功能性和广泛的库生态系统而成为一种流行的语言。数据处理和分析在提取见解和做出明智决策方面发挥着至关重要的作用。然而,随着数据集的规模和复杂性不断增长,对高性能解决方案的需求变得至关重要。有效地处理大型数据集需要能够提供快速计算和优化操作的工具。这就是 Polars 出现的原因。Polars 是一个强大的开源库,专为 Python 中的高性能数据操作和分析而设计。 阅读详情

很多人在学习数据分析的时候,肯定都会用到Pandas这个库,非常的实用!

从创建数据到读取各种格式的文件(text、csv、json),或者对数据进行切片和分割组合多个数据源,Pandas都能够很好的满足。

Pandas最初发布于2008年,使用Python、Cython和C编写的。是一个超级强大、快速和易于使用的Python库,用于数据分析和处理。

当然Pandas也是有不足之处的,比如不具备多处理器,处理较大的数据集速度很慢。

今天,小F就给大家介绍一个新兴的Python库——Polars。

使用语法和Pandas差不多,处理数据的速度却比Pandas快了不少。

一个是大熊猫,一个是北极熊~

GitHub地址:https://github.com/ritchie46/polars

使用文档:https://ritchie46.github.io/polars-book/

Polars是通过Rust编写的一个库,Polars的内存模型是基于Apache Arrow。

Polars存在两种API,一种是Eager API,另一种则是Lazy API。

其中Eager API和Pandas的使用类似,语法差不太多,立即执行就能产生结果。

而Lazy API就像Spark,首先将查询转换为逻辑计划,然后对计划进行重组优化,以减少执行时间和内存使用。

安装Polars,使用百度pip源。

# 安装polars
pip install polars -i https://mirror.baidu.com/pypi/simple/

安装成功后,开始测试,比较Pandas和Polars处理数据的情况。

使用某网站注册用户的用户名数据进行分析,包含约2600万个用户名的CSV文件。

文件已上传公众号,获取方式见文末。

import pandas as pd

df = pd.read_csv('users.csv')
print(df)

数据情况如下。

此外还使用了一个自己创建的CSV文件,用以数据整合测试。

import pandas as pd

df = pd.read_csv('fake_user.csv')
print(df)

得到结果如下。

首先比较一下两个库的排序算法耗时。

import timeit
import pandas as pd

start = timeit.default_timer()

df = pd.read_csv('users.csv')
df.sort_values('n', ascending=False)
stop = timeit.default_timer()

print('Time: ', stop - start)

-------------------------
Time:  27.555776743218303

可以看到使用Pandas对数据进行排序,花费了大约28s。

import timeit
import polars as pl

start = timeit.default_timer()

df = pl.read_csv('users.csv')
df.sort(by_column='n', reverse=True)
stop = timeit.default_timer()

print('Time: ', stop - start)

-----------------------
Time:  9.924110282212496

Polars只花费了约10s,这意味着Polars比Pandas快了2.7倍。

下面,我们来试试数据整合的效果,纵向连接。

import timeit
import pandas as pd

start = timeit.default_timer()

df_users = pd.read_csv('users.csv')
df_fake = pd.read_csv('fake_user.csv')
df_users.append(df_fake, ignore_index=True)
stop = timeit.default_timer()

print('Time: ', stop - start)

------------------------
Time:  15.556222308427095

使用Pandas耗时15s。

import timeit
import polars as pl

start = timeit.default_timer()

df_users = pl.read_csv('users.csv')
df_fake = pl.read_csv('fake_user.csv')
df_users.vstack(df_fake)
stop = timeit.default_timer()

print('Time: ', stop - start)

-----------------------
Time:  3.475433263927698

Polars居然最使用了约3.5s,这里Polars比Pandas快了4.5倍。

通过上面的比较,Polars在处理速度上表现得相当不错。

可以是大家在未来处理数据时,另一种选择~

当然,Pandas目前历时12年,已经形成了很成熟的生态,支持很多其它的数据分析库。

Polars则是一个较新的库,不足的地方还有很多。

如果你的数据集对于Pandas来说太大,对于Spark来说太小,那么Polars便是你可以考虑的一个选择。

万水千山总是情,点个  ????  行不行(如果你觉得这篇对你有帮助的话)。

推荐阅读:入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影年度爆款文案1).卧槽!Pdf转Word用Python轻松搞定!2).学Python真香!我用100行代码做了个网站,帮人PS旅行图片,赚个鸡腿吃3).首播过亿,火爆全网,我分析了《乘风破浪的姐姐》,发现了这些秘密 4).80行代码!用Python做一个哆来A梦分身 5).你必须掌握的20个python代码,短小精悍,用处无穷 6).30个Python奇淫技巧集 7).我总结的80页《菜鸟学Python精选干货.pdf》,都是干货 8).再见Python!我要学Go了!2500字深度分析!9).发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片
pandas和polars简单的对比分析 pandas是基于python写的,底层的数据结构是Numpy数据(ndarray)。pandas自身有两个核心的数据结构:DataFrame和Series,前者是二维的表格数据结构,后者是一维标签化数组。polars是用Rust(一种系统级编程语言,具有非常好的并发性和性能)写的,支持Python、Rust和NodeJS。 阅读详情

相关推荐

Polars迁移实战:从Pandas到列式惰性计算的范式升级

在大数据量ETL与分析场景中,传统行式内存模型的Pandas面临内存爆炸、执行不可预测、扩展性差等瓶颈。Polars基于Rust构建的列式存储、惰性求值与零拷贝执行引擎,从根本上重构了数据处理逻辑——通过查询计划编译、IO下推优化和向量化表达式,实现亿级数据聚合性能提升13倍以上、内存占用降低80%。其技术价值不仅在于速度,更在于可审计性、可复用性与工程确定性,特别适用于T+1报表交付、用户行为日志清洗及实时特征计算等高稳定性要求场景。

coolmsn8786的博客 397

Pandas处理数据太慢,来试试Polars吧!

大家好,我是小F~很多人在学习数据分析的时候,肯定都会用到Pandas这个库,非常的实用!从创建数据到读取各种格式的文件(text、csv、json),或者对数据进行切片和分割组合多个数据...

法纳斯特 1466

Polars vs Pandas:列式存储、懒执行与多线程如何重构大数据处理范式

DataFrame 是数据科学最基础的抽象概念,其底层实现方式直接决定大规模分析的性能上限。传统行式存储与即时执行模型在千万级数据上遭遇CPU单核瓶颈和内存带宽浪费;而基于Apache Arrow的列式存储、声明式懒执行与Rust级多线程并行,构成现代高性能数据处理的三大支柱。这种范式升级不仅带来10倍级速度提升,更重塑了ETL流水线设计逻辑——从‘加载-转换-输出’的线性思维,转向‘计划-优化-流式执行’的工程化实践。本文深入解析Polars核心机制,揭示其如何通过谓词下推、投影裁剪与并行哈希聚合,在真实

weixin_34115824的博客 522

比pandas速度更快的数据分析工具-polars,已支持python语言

开始处理数据之前我创建了两个data1.xlsx和data2.xlsx的Excel数据文件,接下来通过excel数据的读取时间以及数据合并的执行时间来看看pandas和polars的执行效率。毕竟相当庞大的数据体量还有spark等数据处理库。结果分析:从两者的合并数据的时间上面来看,使用polars读取excel数据的时间直接比使用pandas的读取时间也减少了将近三分之二。结果分析:从两者的读取时间上面来看,使用polars读取excel数据的时间直接比使用pandas的读取时间减少了三分之二。

梦在硅谷的博客 2661

pandas高效读取大文件的探索之路

本文探讨了一些pandas读取大文件的优化方案,最后比较好的就是Polars方案和pickle序列化方案。如果我们的项目是分析固定的数据,比如历史的交易数据,历史天气数据,历史销售数据等等,那么,就可以考虑pickle序列化方案,先花时间讲原始数据序列化,后续的分析中不担心读取文件浪费时间,可以更高效的尝试各种分析思路。除此之外的情况,建议使用Polars方案。最后补充一点,如果读取文件的性能对你影响不大,那就用原来的方式,千万不要画蛇添足的去优化,把精力花在数据分析的业务上。

weixin_68789096的博客 2250

使用TinyProxy搭建代理服务器

背景 办公电脑所在网络无法连接外网,机房服务器可以连接外网,通过服务器代理上网; 一、CentOS下TinyProxy安装–搭建代理服务器 TinyProxy是个轻量级简单的HTTP/HTTPS代理程序,GitHub和官网,安装方式这里主要介绍两种 CentOS下yum安装,参考:TinyProxy安装 Docker安装 先安装docker环境yum install docker -y 二、Win10下使用 ...

椰汁菠萝 1万+

【Python】速度起飞!替代 pandas 的 8 个神库

之前介绍过不少关于pandas性能加速的技巧,但这些技巧再厉害,整体运行速度方面也会遇到瓶颈。再见 for 循环!速度提升315倍!Pandas、Numpy性能优化秘籍(全)本篇介绍 8 个可以替代pandas的库,在加速技巧之上,再次打开速度瓶颈,大大提升数据处理的效率。1. DaskDask在大于内存的数据集上提供多核和分布式并行执行。在Dask中,一个DataFra...

fengdu78的博客 3515

一文详解声码器

声码器(Vocoder)是语音信号处理领域的核心技术,其本质是通过“分析 - 参数化 - 合成” 的闭环流程,实现语音的高效编码、转换或生成。它不仅是早期语音通信的关键工具,更是现代 AI 语音技术(如 TTS、语音转换)的核心组件。以下从原理、技术分类、关键模块、应用及发展趋势展开详细解析。

weixin_41413777的博客 1355

【Python】Pandas处理数据太慢,来试试Polars吧!

从创建数据到读取各种格式的文件(text、csv、json),或者对数据进行切片和分割组合多个数据源,Pandas都能够很好的满足。如果你的数据集对于Pandas来说太大,对于Spark来说太小,那么Polars便是你可以考虑的一个选择。当然,Pandas目前历时12年,已经形成了很成熟的生态,支持很多其它的数据分析库。当然Pandas也是有不足之处的,比如不具备多处理器,处理较大的数据集速度很慢。安装成功后,开始测试,比较Pandas和Polars处理数据的情况。...

m0_54252387的博客 569

手把手教你用STM32CubeMX配置I3C通信(含动态地址分配实战)

本文提供了一份基于STM32CubeMX配置I3C通信的实战指南,重点讲解了动态地址分配的实现步骤。通过详细的工程配置、从设备枚举、CCC命令使用及数据读写示例,帮助开发者快速掌握这一高效通信协议,以替代传统的I2C或SPI接口,满足多传感器连接与低功耗设计需求。

c8d9e0f1的博客 544

如何构建高质量的 QA 问答知识库

NLP 技术落地最普遍的场景就是智能客服,如阿里的”小蜜“,京东的“JIMI”等等。NLP 技术也广泛应用于搜索系统。无论是“智能客服”,还是“搜索系统”,构建的前提是拥有“高质量的QA知识库”。今天聊聊“如何构建高质量QA知识库。”。 历史对话数据分布分析 基于公司现有系统积累的大规模对话文本数据,需要对文本数据进行归类处理,分析每个部分数据的占比,挖掘出有价值的文本通过 NLP 相关技术进行商业价值转化。下文以医疗领域来举例说明,通过输入对象,可以将文本分为客服输入和用户输入两部分。挖掘相关问题,主要从

Jiassheng的博客 2153

Pandas处理数据太慢,来试试Polars吧~

很多人在学习数据分析的时候,肯定都会用到Pandas这个库,非常的实用!从创建数据到读取各种格式的文件(text、csv、json),或者对数据进行切片和分割组合多个数据源,Pandas都能够很好的满足。Pandas最初发布于2008年,使用Python、Cython和C编写的。是一个超级强大、快速和易于使用的Python库,用于数据分析和处理。当然Pandas也是有不足之处的,比如不具备多处理器,处理较大的数据集速度很慢。今天给大家介绍一个新兴的Python库——Polars。使用语法和Pandas差不多

sixqingfeng的博客 802

STM32CubeMX、keil、simulink联合开发MCU教程

一、整体思路 利用Matlab的simulink搭建模型生成C代码,通过stm32cubemx生成工程,最后在KEIL或者IAR等工具里面编译生成代码下载至MCU中执行。 本文以流水灯建立模型和简单使用定时器为例进行演示。 二、开发环境 1、安装Matlab Matlab版本建议在2013B以上,本文使用Matlab 2016a。 2、安装STM32硬件支持包 下载地址(https://www.stmcu.org.cn/document/detail/index/id-216053) 安装完成后重启MAT

tzlaa的博客 7740

Pandas2.0正式版来了,快来试试

来源:数据STUDIOPandas 2.0正式版在4月3日已经发布了,以后我们pip install默认安装的就是2.0版了,Polars 是最近比较火的一个DataFrame 库,最近在kaggle上经常使用,所以这里我们将对比下 Pandas 1.5,Polars,Pandas 2.0 。看看在速度上 Pandas 2.0有没有优势。PolarsPolars 是一个 Rust 和 Python...

Python小二 1141

地下管网巡检机器人:基于YOLOv8与UI界面的智能化系统设计与实现

通过YOLOv8模型的目标检测功能结合实时视频流,我们能够实现对地下管网巡检机器人的智能化控制。系统通过图像识别技术帮助巡检人员快速识别管道中的各种缺陷和障碍物,从而提高巡检效率和准确性。未来,我们可以继续优化模型,增加更多的目标类别,并通过强化学习等方法提高机器人的自主巡检能力。此外,随着硬件技术的发展,未来的巡检机器人可能会具备更强的感知能力和更高的智能水平。

YOLO 532

26版SPSS操作教程(高级教程第二十一章)

#专注方能成事 #本期内容:信度分析 #由于导师最近布置了学习SPSS这款软件的任务,因此想来平台和大家一起交流下学习经验,这期推送内容接上一次高级教程第二十章的学习笔记,希望能得到一些指正和帮助~

你好! 1713

快速、高效的数据处理:深入了解 Polars 库

Polars 是一个基于Rust编写的开源高性能数据框架,专注于快速处理大规模数据集。与 Pandas 不同,Polars 采用作为底层内存格式,并使用列式存储模型,极大提升了数据处理效率。并行计算:充分利用多核 CPU 提高性能。懒惰计算:通过延迟执行优化查询计划。表达式 API:高效、清晰地处理复杂的数据操作。Polars 是 Pandas 的优秀替代方案,尤其适合处理大规模数据的任务。

萧鼎的博客 1563

华为OD机试2025A卷 - BOSS的收入(Java & Python& JS & C++ & C )

华为OD机试2025A卷 - BOSS的收入(Jav一个XX产品行销总公司,只有一个boss,其有若干一级分销,一级分销又有若干二级分销,每个分销只有唯一的上级分销。规定,每个月,下级分销需要将自己的总收入(自己的+下级上交的)每满100元上交15元给自己的上级。现给出一组分销的关系,和每个分销的收入,请找出boss并计算出这个boss的收入。输入:分销关系和收入:[[分销id 上级分销id 收入], [分销id 上级分销id 收入], [分销id 上级分销id 收入]]输出:[boss的ID, 总收入]

算法大师! 1173

从 Pandas 到 Polars 四十四:Polars 和 数据可视化库Seaborn

为了避免不必要的复制,我建议使用select函数只复制你的图表所需的列的子集,例如df.select(["Age","Fare","Pclass"]).to_pandas()。然而,Seaborn的新界面给我留下了深刻印象,并且我很高兴地发现,Seaborn将直接接受Polars的DataFrame来进行许多图表绘制。在这篇文章中,我将探讨如何将Polars的DataFrame传递给Seaborn以进行一些高级图表的绘制,并分享一些使用Seaborn可视化Polars DataFrame的其他技巧。

sosogod的博客 1195

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

polars,一个神奇的 python 库

很多人在学习数据分析的时候,肯定都会用到Pandas这个库,非常的实用!从创建数据到读取各种格式的文件(text、csv、json),或者对数据进行切片和分割组合多个数据源,Pandas都能够很好的满足。Pandas最初发布于2008年,使用Python、Cython和C编写的。是一个超级强大、快速和易于使用的Python库,用于数据分析和处理。当然Pandas也是有不足之处的,比如不具备多处理器...

数据森麟 343

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Polars入门实战:从零构建高性能数据处理流水线

DataFrame 是现代数据分析的核心抽象,其性能与内存效率直接决定 ETL 和机器学习 pipeline 的可扩展性。基于 Apache Arrow 内存模型和 Rust 实现的 Polars,通过列式存储、零拷贝访问与 SIMD 加速,显著提升大数据量下的计算吞吐;其 Lazy Evaluation 机制支持谓词下推与投影下推,使 I/O 和内存开销大幅降低。相比 pandas 的 Python 对象封装与单线程默认行为,Polars 在多核并行、类型安全与执行计划优化上具备系统级优势。本文以真实交易

蓝色妖姬 431

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

上一篇: Linux Shell 脚本的 10 个有用的“面试问题和解答”
下一篇: 一小段Python代码,破解加密zip文件的密码
菜鸟学Python
博客等级 码龄9年 8081粉丝 571原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值