【无标题】

速度起飞!替代 pandas 的 8 个神库
Python研究者 2022-07-08 09:42 发表于江苏
以下文章来源于Python数据科学 ,作者东哥起飞

之前介绍过不少关于pandas性能加速的技巧,但这些技巧再厉害,整体运行速度方面也会遇到瓶颈。

本篇介绍 8 个可以替代pandas的库,在加速技巧之上,再次打开速度瓶颈,大大提升数据处理的效率。

  1. Dask
    Dask在大于内存的数据集上提供多核和分布式并行执行。

图片
在Dask中,一个DataFrame是一个大型且并行的DataFrame,由许多较小的 pandas DataFrames组成,沿索引拆分。

这些 pandas DataFrames 可以存在于单个机器上的磁盘中计算远超于内存的计算,或者存在集群中的很多不同机器上完成。一个 Dask DataFrame 操作会触发所有 Pandas DataFrames 的操作。

Dask-ML支持pandas、Numpy、Sklearn、XGBoost、XArray、RAPIDS等等,对于常用的数据处理、建模分析是完全够用的。

安装dask

pip install dask

导入dask dataframe

import dask.dataframe as dd
原理、使用可参考这篇:安利一个Python大数据分析神器Dask!

  1. Modin
    Modin是一个多进程的Dataframe库,可以加速Pandas的工作流程。多进程意味着,如果在多核的计算机上查询速度就会成倍的提升。

Modin具有与pandas相同的API,使用上只需在import导入时修改一下,其余操作一模一样。

导入 modin pandas

import modin.pandas as pd
原理、安装、使用可参考这篇:pandas慢怎么办?来试试Modin

  1. Data Table
    Datatable是一个用于处理表格数据的 Python 库。

与pandas的使用上很类似,但更侧重于速度和大数据的支持。在单节点的机器上,无论是读取数据,还是数据转换等操作,速度均远胜于pandas。

如果不是分布式而是单节点处理数据,遇到内存不够或者速度慢,也不妨试试这个库。

使用文档:https://datatable.readthedocs.io/en/latest/start/quick-start.html

  1. Polars
    Polars是使用 Apache Arrow Columnar Format 作为内存模型在 Rust 中实现的速度极快的 DataFrames 库。

安装 polars

pip install polars

导入 polars

import polars as pl
使用文档:https://pola-rs.github.io/polars-book/user-guide/index.html

  1. Vaex
    Vaex 也是一个开源的 DataFrame,它采用内存映射、高效的核外算法和延迟计算等技术。

对于大数据集而言,只要磁盘空间可以装下数据集,使用Vaex就可以对其进行分析,解决内存不足的问题。

它的各种功能函数也都封装为类 Pandas 的 API,几乎没有学习成本。

可参考这篇文章:0.052 秒打开 100GB 数据,这个Python开源库火爆了!

  1. Pyspark
    Pyspark 是 Apache Spark 的 Python API,通过分布式计算处理大型数据集。

安装

pip install pyspark

导入

from pyspark.sql import SparkSession, functions as f
spark = SparkSession.builder.appName(“SimpleApp”).getOrCreate()
df = spark.read.option(‘header’, True).csv('…/input/yellow-new-yo
由于spark在速度上较hadoop更有优势,现在很多企业的大数据架构都会选择使用spark。

  1. Koalas
    Koalas 是在 Apache Spark 之上实现 的pandas DataFrame API,让数据分析更高效。

由于 Koalas 是在 Apache Spark 之上运行的,因此还必须安装 Spark。

安装

pip install pyspark
pip install koalas

导入

import databricks.koalas as ks
from pyspark.sql import SparkSession
使用文档:https://koalas.readthedocs.io/en/latest/index.html

  1. cuDF
    cuDF 是一个 Python GPU DataFrame 库,基于 Apache Arrow 列式内存格式构建,用于数据操作。

cuDF 提供类 pandas 的 API,因此数据分析师也是无需了解 CUDA 编程细节的。

import cudf, io, requests
from io import StringIO

url = “https://github.com/plotly/datasets/raw/master/tips.csv”
content = requests.get(url).content.decode(‘utf-8’)

tips_df = cudf.read_csv(StringIO(content))
tips_df[‘tip_percentage’] = tips_df[‘tip’] / tips_df[‘total_bill’] * 100

print(tips_df.groupby(‘size’).tip_percentage.mean())
使用文档:https://github.com/rapidsai/cudf

本篇介绍的 8 个Python库原理不同,使用环境也有差异,大家可以根据自己的需求进行尝试。

但这些库基本上都提供了类pandas的API,因此在使用上没有什么学习成本,只要配置好环境就可以上手操作了。

推荐阅读

Python自动化办公小程序:实现报表自动化和自动发送到目的邮箱
使用 LSTM 对销售额预测(Python代码)
全网通用Python点赞器
喜欢此内容的人还喜欢
让代码不那么臃肿——pandas系列
统计学人
不喜欢
不看的原因
内容质量低不看此公众号

[译]Uber Go语言规范
薯条的编程修养
不喜欢
不看的原因
内容质量低不看此公众号

Numpy入门这一篇【图解】就够了
嘿Python
不喜欢
不看的原因
内容质量低不看此公众号

微信扫一扫
关注该公众号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值