polars库是python的又一dataframe库,显然,在pandas库的光芒下,要上位是不容易的,必须有过硬的功夫。
一、用法基本一致
从长相上看,两者有孪生相,用法和接口基本无二。至少大部分非常非常相似。估计很多只需要在import 这行改一行,估计就能用上了。
安装:
pip install polars
也可以通过镜像,这样快一些。
二、速度polars优势明显
import time
import polars as pl
import pandas as pd
file = r"C:\Users\songroom\Desktop\test_csv.csv"
t0 = time.time()
df_1 = pd.read_csv(file,encoding="gbk")
t1 =time.time()
df_2 = pl.read_csv(file,encodeing ="gbk")
t2 = time.time()
print(f"pandas read_csv cost time :{t1-t0} polars read_csv cost time :{t2-t1}")
print(f"df_1 shape :{df_1.shape} df_2 shape : {df_2.shape}")
t3 = time.time()
for row in df_1.itertuples():
v0 = row[1]
v2 = row[2]
t4 = time.time()
for row in df_2.rows():
v0 = row[1]
v2 = row[2]
t5 = time.time()
print(f"pandas iterate cost time :{t4-t3} polars iterate cost time :{t5-t4}")
pandas read_csv cost time :1.3020009994506836 polars read_csv cost time :0.10900020599365234
df_1 shape :(589680, 14) df_2 shape : (589680, 14)
pandas iterate cost time :1.0449976921081543 polars iterate cost time :1.1010003089904785
总体上看,polars库在io上优势很明显,快太多了。就单个循还而言,其polar的rows()和pandas的itertuples()差不多。
polars库是通过Rust编写的一个库,Polars的内存模型是基于Apache Arrow。python只是一个前端的封装。
关于polars更多的资料,见polars的github上的源:
https://github.com/pola-rs/polars
关于polars的性能,见:
https://h2oai.github.io/db-benchmark/
三、生态polars还处于初期
显然,pandas是成千上万人N年如一日打磨的产品,是一个非常成熟大叔了,但polars相其相比,还是一个年青小伙子,但是基本上常见的功能已经够用了。特别是你感觉pandas不够快的话。
目前,Polars 是基于arrow1的,目前正准备向arrow2迁移,arrow2的速度将更快,这样有理由相信Polars值得我们期待!
polars库是python的又一dataframe库,显然,在pandas库的光芒下,要上位是不容易的,必须有过硬的功夫。一、用法基本一致从介绍上看,两者有孪生相,用法和接口基本无二。至少大部分非常非常相似。估计很多只需要在import 这行改一行,估计就能用上了。安装:pip install polars 也可以通过镜像,这样快一些。二、速度polars优势明显import time import polars as plimport pandas as pdfile = r"C:
相信对于不少的数据分析从业者来说呢,用的比较多的是Pandas以及SQL这两种工具,Pandas不但能够对数据集进行清理与分析,并且还能够绘制各种各样的炫酷的图表,但是遇到数据集很大的时候要是还使用Pandas来处理显然有点力不从心。
今天我就来介绍另外一个数据处理与分析工具,叫做Polars,它在数据处理的速度上更快,当然里面还包括两种API,一种是Eager API,另一种则是Lazy API,其中Eager API和Pandas的使用类似,语法类似差不太多,立即执行就能产生结果。喜欢本文记得收藏、关注
Pandas在大数据处理上的不足,制约了其在数据科学领域的进一步发展,尽管它在小数据集上处理非常灵活方便;探究
Pandas在大数据时代的替代品,是算法工程师面临的重要问题。
当然,现在各类公有云和分析型数据
库大行其道,大数据对于它们来说不是问题,但这往往需要付出一定的成本才能获得商用版本带来的便捷与高效。那么,有没有低成本的方案可供选择呢?
反思
Pandas面对大数据时羸弱的表现:由于
Pandas在设计时只能单核运行,因此无法用到计算机的多核CPU,针对这个弱点的改善,业界实现了很多替代方案。
相信对于不少的数据分析从业者来说呢,用的比较多的是Pandas以及SQL这两种工具,Pandas不但能够对数据集进行清理与分析,并且还能够绘制各种各样的炫酷的图表,但是遇到数据集很大的时候要是还使用Pandas来处理显然有点力不从心。
今天我就来介绍另外一个数据处理与分析工具,叫做Polars,它在数据处理的速度上更快,当然里面还包括两种API,一种是Eager API,另一种则是Lazy API,其中Eager API和Pandas的使用类似,语法类似差不太多,立即执行就能产生结果。喜欢本文记得收藏、关注
其中,"df"是一个
Pandas数据框(DataFrame)对象,它将包含CSV文件中的数据。
如果您的CSV文件不是使用逗号作为分隔符的,您可以通过指定分隔符来读取它。例如,如果您的CSV文件使用制表符作为分隔符,您可以使用以下代码读取它:
df = pd.read_csv('data.csv', sep='\t')
通过以上步骤,您就可以使用
Pandas库来读取CSV文件了。