首页 > 其他分享 >速度起飞!替代 pandas 的 8 个神库

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

时间:2022-08-27 09:33:47浏览次数:37  
标签:Python 神库 df API import 起飞 tips pandas

转载:https://mp.weixin.qq.com/s/ars6wWoUf59i7TyxAPE22g

大家好,我是指南兄。

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

1. Dask

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

图片

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

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

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

# 安装daskpip install dask# 导入dask dataframeimport dask.dataframe as dd

2. Modin

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

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

# 导入 modin pandasimport modin.pandas as pd

3. Data Table

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

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

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

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

4. Polars

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

# 安装 polarspip install polars# 导入 polarsimport polars as pl

 

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

5. Vaex

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

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

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

6. Pyspark

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

# 安装pip install pyspark# 导入from pyspark.sql import SparkSession, functions as fspark = SparkSession.builder.appName("SimpleApp").getOrCreate()df = spark.read.option('header', True).csv('../input/yellow-new-yo

由于spark在速度上较hadoop更有优势,现在很多企业的大数据架构都会选择使用spark。

7. Koalas

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

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

# 安装pip install pysparkpip install koalas# 导入import databricks.koalas as ksfrom pyspark.sql import SparkSessio
使用文档:https://koalas.readthedocs.io/en/latest/index.html

8. cuDF

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

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

import cudf, io, requestsfrom 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指南 优秀的Python程序员都在这里,介绍学习 Python 的一切。 19篇原创内容 公众号

       

文末有一个我们团队正在做的副业,已经操盘了快1年多,执行力够强的小伙伴基本都能拿到结果。

标签:Python,神库,df,API,import,起飞,tips,pandas
From: https://www.cnblogs.com/testzcy/p/16629834.html

相关文章

  • 10个快速入门Query函数使用的Pandas的查询示例
    转载:https://mp.weixin.qq.com/s/TJStQDtUfOOXtb__cpivDgpandas.的query函数为我们提供了一种编写查询过滤条件更简单的方法,特别是在的查询条件很多的时候,在本文中整理了1......
  • 3个Pandas高频使用函数
    转载:https://mp.weixin.qq.com/s/6FECFHIkyItYnmQ37Vn_SQ 大家好,我是Peter~本文主要是给大家介绍3个Pandas日常高频使用函数:apply+agg+transform。模拟数据模拟......
  • geopandas 生成 shp 文件
    生成shp文件ss=[]forilinC.allsegs[1:5]:ss.append(geometry.MultiLineString([i.tolist()foriiniliflen(i.tolist())>1]))cq=geopandas.GeoD......
  • geopandas 把 shp 文件入库到 postgis 数据库
    lll={'database':"test",'user':'postgres','password':'postgis','host':'127.0.0.1','port':'5432'}engine=create_engine(f"......
  • Pandas数据处理
    通用方法 pandas.melt =>选择一个列变量为列索引值为列数据dfABC0a121b342c56pd.melt(df,id_vars=['A'],value_vars=['B'],var......
  • pandas笔记
    导入pandasimportpandasaspd读取excel文件df=pd.read_excel(r'windows系统文件路径','sheet名')如果是linux系统则不用在文件路径前添加r限定某列数据出现次......
  • Python pandas merge(join) 通过单列或多列合并连接两个DataFrame
    Pythonpandas中处理两个DataFrame时,有些情况我们可能需要将两个DataFrame合并成一个DataFrame,本文主要介绍Pythonpandas中通过单列或多列合并连接两个DataFrame的方法,以......
  • Pandas_1_预备知识
    Chapter1_Python基础1.1Python基础推导式:两个对象之间的映射关系,类似于实数之间关系变换的函数,只不过对象变成了矩阵。#Ex1-1vacabulary=['conform','deem......
  • pandas处理excel
    START importpandasaspdurl="input.xls"data=pd.read_excel(io=url,index_col="age",sheet_name=0)"""参数:io代表文件路径index_col代表索引列sheet......
  • pandas 的 apply() 函数
     一、apply()函数 DataFrame.apply(func,axis=0,broadcast=False,raw=False,reduce=None, args=(),**kwds)参数解释:(1)func:就是函数,不管是自定义的函数,还是匿名......