本篇介绍 8 个能够代替pandas的库,在减速技巧之上,再次关上速度瓶颈,大大晋升数据处理的效率。
- 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
- Modin
Modin是一个多过程的Dataframe库,能够减速Pandas的工作流程。多过程意味着,如果在多核的计算机上查问速度就会成倍的晋升。
Modin具备与pandas雷同的API,应用上只需在import导入时批改一下,其余操作截然不同。
# 导入 modin pandas import modin.pandas as pd
- Data Table
Datatable是一个用于解决表格数据的 Python 库。
与pandas的应用上很相似,但更侧重于速度和大数据的反对。在单节点的机器上,无论是读取数据,还是数据转换等操作,速度均远胜于pandas。
如果不是分布式而是单节点解决数据,遇到内存不够或者速度慢,也无妨试试这个库。
- Polars
Polars是应用 Apache Arrow Columnar Format 作为内存模型在 Rust 中实现的速度极快的 DataFrames 库。
# 装置 polars pip install polars # 导入 polars import polars as pl
- Vaex
Vaex 也是一个开源的 DataFrame,它采纳内存映射、高效的核外算法和提早计算等技术。
对于大数据集而言,只有磁盘空间能够装下数据集,应用Vaex就能够对其进行剖析,解决内存不足的问题。
它的各种性能函数也都封装为类 Pandas 的 API,简直没有学习老本。
- 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。
- 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
- 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())
本篇介绍的 8 个Python库原理不同,应用环境也有差别,大家能够依据本人的需要进行尝试。
但这些库基本上都提供了类pandas的API,因而在应用上没有什么学习老本,只有配置好环境就能够上手操作了。
以上就是本次分享的所有内容,想要理解更多 python 常识欢送返回公众号:Python 编程学习圈,每日干货分享