ibis:极具潜力的Python数据分析新框架

今天要给大家介绍的Python框架叫做ibis,没错,跟著名连锁酒店宜必思同名,其作者是创造了pandasArrow等著名框架的Wes McKinney。

图片

ibis的核心理念是用同一套数据框操作API,统一操纵各种主流的数据运算框架,使得用户可以更轻松更一致的构建自己的数据分析处理过程,而不是囿于不同框架之间千差万别的用法,下面我们就来一起学习其基础用法😉~

图片

2 ibis基础用法介绍

2.1 ibis的安装

为了方便演示,我们这里使用condamamba创建新的虚拟环境,来安装试用ibis,以mamba为例,在终端中执行下列命令,完成演示用虚拟环境的创建及激活,并安装ibis最基础的相关模块+示例数据集模块:

验证是否安装成功:

可以看到,我们完成了对ibis的安装,当前版本为9.0.0

图片

2.2 ibis主要功能

2.2.1 构建具有便携性的分析逻辑

ibis本身不直接执行分析计算,当我们针对目标数据编写好对应计算逻辑的ibis代码后,实际执行时其底层会将计算逻辑自动转换到当前的计算后端中。目前ibis支持「超过20种」计算后端,均为当前「单机分析」「分布式分析」领域的主流框架:

图片

这使得基于ibis构建的数据分析工作流,可以在不修改代码的情况下,轻松扩展应用于任意的计算后端。

譬如,ibis默认使用DuckDB作为后端进行单机分析运算,你可以在本机上使用部分数据构建并验证业务分析逻辑后,再套用相同的代码,切换计算后端到诸如ClickHouse上执行分布式运算,这一特性也是ibis「便携性」的体现。

举个简单的例子,首先我们基于pandas生成具有一千万行记录的示例数据并导出为parquet格式:

接下来我们先使用默认的DuckDB后端,在ibis中执行一些示例运算,注意其运算耗时:

图片

接着,我们切换计算后端为pandas,执行完全一样的计算代码,可以看到计算耗时陡增,毕竟pandas处理上千万行数据性能要远逊于DuckDB,这个例子体现出ibis强大的代码便携性:

图片

2.2.2 充分搭配Python与SQL

ibis中另一个非常强大的功能,是其可以充分结合Python代码和SQL代码来开展分析工作,譬如,你可以将ibis分析代码直接转换为SQL语句:

图片

也可以直接执行SQL语句开展分析:

图片

这使得ibis可以充分联结各类最先进的计算后端,帮助分析师轻松维护业务分析逻辑。

无论你原先在使用pandasSQL还是R进行数据分析,ibis官网文档中都提供了非常友好的使用指南,确保你可以无痛的迁移使用ibis

图片

ibis正处于高速迭代发展阶段,其代码仓库几乎每天都在进行新的提交活动,欢迎进行⭐支持:https://github.com/ibis-project/ibis

更多相关内容,请移步其官网学习更多:https://ibis-project.org/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/396684.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu安装 IDEA

一、在官网下载 IDEA 下载IDEA For LinuxDownload the latest version of IntelliJ IDEA for Windows, macOS or Linux.https://www.jetbrains.com/idea/download/?sectionlinux下载好的安装包解压到/opt/中,目录名更改为 idea 二、对/opt/idea 目录下所有文件授予…

canal监听mysql增量数据发布到rabbitmq

canal工作原理 canal 依靠mysql主从备份的原理,模拟 MySQL slave 的交互协议,伪装自己为 MySQL slave ,向 MySQL master 发送dump 协议MySQL master 收到 dump 请求,开始推送 binary log 给 slave (即 canal )canal 解析 binary …

C++11右值引用

什么是左值,什么是右值? 不可以单纯字面去理解,等号左边是左值,等号右边是右值。 左值:可以修改的可以认为是左值,左值通常是变量。 右值:通常是常量,表达式或函数返回值&#xff0…

浅谈C/C++指针和引用在Linux和Windows不同环境下的编码风格

目录 0. 前言 1. 代码块、函数体上的 { } 的规范 2. 指针和引用中的 * 和 & 符号的位置 1. Linux 环境下编码风格(gcc) 2. Windows 环境下编码风格(Visual Studio) 3. 简单总结 0. 前言 C/C因为高度的自由性,并没有对一些常见的编码风格进行限制&#…

Hive3:数据的加载与导出

一、加载数据 在创建表之后,表中没有数据,我们不可能insert存入数据。 而是,通过数据加载,将HDFS中的数据关联到Hive表中。 建表 CREATE TABLE myhive.test_load(dt string comment 时间(时分秒), user_…

某客户ODS数据库undo段问题分析处理

概述 ODS数据库在7月22日4个时间点02:03,05:17,07:04,08:53分别报如下错误: 原因分析 Ora-1628:max # extents 32765 reached for rollback segment _SYSSMU19990_761259507$ Oracle 官方解释: Cause: An attempt was made to extend a roll…

VScode:前端项目中导出和导入插件

# 终端运行:导出扩展插件到指定路径(txt) code --list-extensions > C:\Users\UserName\Documents\extensions.txt # 终端运行:导入指定路径(txt)的扩展插件 Get-Content C:\Users\UserName\Documen…

渗透测试实战-菠菜站渗透测试(Nacos反序列化漏洞利用)

免责声明:文章来源于真实渗透测试,已获得授权,且关键信息已经打码处理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本…

Python 设计模式之工厂函数模式

文章目录 案例基本案例逐渐复杂的案例 问题回顾什么是工厂模式?为什么会用到工厂函数模式?工厂函数模式和抽象工厂模式有什么关系? 工厂函数模式是一种创建型设计模式,抛出问题: 什么是工厂函数模式?为什么…

uniapp版本更新除了plus.runtime.getProperty的解决办法

以下是展示图 带尺寸的图片: 首先把以下代码放到想要更新弹出的页面 //template部分<uni-popup ref"popup" background-color"#fff"><versionUp handleCloseVersion"closeVersion"></versionUp></uni-popup>//script…

应急响应:Windows 入侵排查思路.

什么是应急响应. 一个组织为了 应对 各种网络安全意外事件的发生 所做的准备 以及在 事件发生后 所采取的措施 。说白了就是别人攻击你了&#xff0c;你怎么把这个攻击还原&#xff0c;看看别人是怎么攻击的&#xff0c;然后你如何去处理&#xff0c;这就是应急响应。 目录&am…

上海电信万兆宽带2026年将实现全城覆盖

为了响应号召&#xff0c;上海力争到2026年&#xff0c;初步建成以5G-A和万兆光网为标志的全球双万兆城市。上海电信正式对外宣布将于8月30日正式上线“美好家万兆融合套餐”&#xff0c;同时发布速率行业领先的“5G-A套餐”&#xff0c;上线“随翼选”云翼智选礼包&#xff0c…

【Go】手写简易go webserver

核心&#xff1a;实现net/http库中handler接口的ServeHTTP方法的实例&#xff0c;通过http.ListenAndServe注册后&#xff0c;所有的请求都会打到该实例的ServeHTTP方法里。Context是对请求对象和响应对象的封装&#xff0c;实现了获取请问请求参数、设置状态码、设置响应头、设…

WINDOWS核心编程-----3章,内核对象,是现在不同账号下测试

系列文章目录 终端服务命名空间中内核对象的测试程序 TerminalService程序需要用登录不同的windows账号同时运行。才能看出效果 建议测试流程 1&#xff0c;先登录windows账号A&#xff0c;运行两个本程序实例 2&#xff0c;保持上述两个实例人在运行中&#xff0c;在登陆wind…

Vue3 搭建前端工程,并使用idea配置项目启动

1 下载node.js 先下载 node.js LTS 并安装&#xff1a;node.js 的 npm&#xff0c;用于管理前端项目包依赖&#xff0c;这里以 14.17.3 这个版本为例。如果已经安装过 node.js&#xff0c;可以在设置中找到应用&#xff0c;点进去搜索 node.js 即可卸载 node.js 14.17.3 安装…

C语言典型例题32

《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 习题2.9 编程序用getchar函数读入两个字符给c1&#xff0c;c2&#xff0c;然后分别用putchar函数和printf函数输出这两个字符。 &#xff08;1&#xff09;变量c1&#xff0c;c2应该定义为字符型或者整型吗&#x…

Flutter 学习之旅

本文只针对个人学习所遇问题&#xff0c;以及解决方案进行记录&#xff0c;不深刨原理。 不深刨原理是因为我也才开始学习&#xff0c;讲不明白&#xff0c;有可能还误导大家 &#xff0c;希望多多包涵。 问题一&#xff1a; 如何通过appBar去设置状态栏字体颜色以及状态栏透…

LLM - 使用 HuggingFace + Ollama 部署最新大模型 (GGUF 格式 与 Llama 3.1)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/141028040 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 Ollama…

【Linux】Ubuntu20.04系统中能在命令行ping通百度等网站,而在浏览器中不能上网的问题解决方法

今天离开学校&#xff0c;在家中打开ubuntu系统准备上网&#xff0c;发现浏览器打不开&#xff0c;但是QQ是可以发消息的&#xff0c;证明WIFI应该是没有问题的&#xff0c;但是谷歌和火狐浏览器就是打不开网址&#xff0c;很奇怪&#xff01; 先检查我们Linux能不能ping通 开一…

基于Jakarta,TypeScript,Golong的国密SM2、3、4

文章目录 前言一. Jakarta代码二. TypeScript三.golang 前言 最近还要深度研究hutools底层实现&#xff0c;一定要搞透澈&#xff0c;本章将会是持续更新 所有密钥由Jakarta统一生成&#xff0c;因为没测试其他语言生成是否可以 参考资料&#xff1a; Java代码实现SM2算法以及…