python Polars库的使用简介


Posted in Python onApril 21, 2021

大家好,我是小F~

很多人在学习数据分析的时候,肯定都会用到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的使用类似,语法差不太多,立即执行就能产生结果。

python Polars库的使用简介

而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)

数据情况如下。

python Polars库的使用简介

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

import pandas as pd

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

得到结果如下。

python Polars库的使用简介

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

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便是你可以考虑的一个选择。

文件地址:

链接:https://pan.baidu.com/s/14fFNOPomQe38RLbAUq5W7w  密码:nfqv

以上就是python Polars库的使用简介的详细内容,更多关于python Polars库的使用的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python单元测试框架unittest使用方法讲解
Apr 13 Python
python创建一个最简单http webserver服务器的方法
May 08 Python
详解Python下Flask-ApScheduler快速指南
Nov 04 Python
Python编程在flask中模拟进行Restful的CRUD操作
Dec 28 Python
python根据文章标题内容自动生成摘要的实例
Feb 21 Python
python lambda表达式在sort函数中的使用详解
Aug 28 Python
python文件编写好后如何实践
Jul 07 Python
python 利用opencv实现图像网络传输
Nov 12 Python
python里反向传播算法详解
Nov 22 Python
python 实现逻辑回归
Dec 30 Python
全网最细 Python 格式化输出用法讲解(推荐)
Jan 18 Python
python学习之panda数据分析核心支持库
May 07 Python
python基础之匿名函数详解
Apr 21 #Python
Python基础之字符串格式化详解
Apr 21 #Python
python 自动刷新网页的两种方法
python实现Thrift服务端的方法
python基础之while循环语句的使用
看看如何用Python绘制小米新版天价logo
基于python制作简易版学生信息管理系统
You might like
PHP通过header实现文本文件下载的代码
2010/08/08 PHP
Yii安装与使用Excel扩展的方法
2016/07/13 PHP
PHP经典实用正则表达式小结
2017/05/04 PHP
php中通用的excel导出方法实例
2017/12/30 PHP
基于Laravel 多个中间件的执行顺序详解
2019/10/21 PHP
常用的javascript function代码
2008/05/23 Javascript
jQuery实现等比例缩放大图片让大图片自适应页面布局
2013/10/16 Javascript
jquery.validate的使用说明介绍
2013/11/12 Javascript
JavaScript DOM进阶方法
2015/04/13 Javascript
属于你的jQuery提示框(Tip)插件
2016/01/20 Javascript
jquery树形菜单效果的简单实例
2016/06/06 Javascript
jquery实现文字单行横移或翻转(上下、左右跳转)
2017/01/08 Javascript
JS实现微信里判断页面是否被分享成功的方法
2017/06/06 Javascript
vue 引入公共css文件的简单方法(推荐)
2018/01/20 Javascript
Bootstrap table表格初始化表格数据的方法
2018/07/25 Javascript
JSON获取属性值方法代码实例
2020/06/30 Javascript
[04:21]狐狸妈带你到现场 DOTA2 TI中国区预选赛线下赛路线指引
2014/05/22 DOTA
[54:57]DOTA2-DPC中国联赛定级赛 Aster vs DLG BO3第二场 1月8日
2021/03/11 DOTA
[01:11:21]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第三场 3月7日
2021/03/11 DOTA
Python日期操作学习笔记
2008/10/07 Python
python3抓取中文网页的方法
2015/07/28 Python
浅谈TensorFlow之稀疏张量表示
2020/06/30 Python
利用python下载scihub成文献为PDF操作
2020/07/09 Python
pycharm2020.1.2永久破解激活教程,实测有效
2020/10/29 Python
网络书店创业计划书
2014/02/07 职场文书
cf战队收人广告词
2014/03/14 职场文书
党员四风剖析材料
2014/08/27 职场文书
村长党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
派出所正风肃纪剖析材料
2014/10/10 职场文书
领导干部作风建设自查报告
2014/10/23 职场文书
民政局标准版离婚协议书
2014/12/01 职场文书
2015年维修工作总结
2015/04/25 职场文书
大学生实习介绍信
2015/05/05 职场文书
运动会宣传稿50字
2015/07/23 职场文书
篮球拉拉队口号
2015/12/25 职场文书
2019年暑期法院实习报告
2019/12/18 职场文书