Pandas常见的性能优化方法

百万数据慢慢读?Pandas性能优化法速读百万级数据无压力 作为数据分析工作者,我们每天都要处理大量数据,这时Pandas等工具的读取性能也就备受关注。因此,如果是读取整个表的数据,建议使用此方法。可以通过SQL先过滤和筛选出需要的字段和数据,然后再读取到Pandas。这可以最大限度减少读取的数据量,加快读取速度。在读取数据时指定chunksize参数,这会将数据分块读取到Pandas,而不是将整个数据集载入内存。在SQL查询中仅选择需要的列,避免读取无关列的数据。指定index_col参数可以跳过某一列的数据读取,这能减少读取的数据量,提高速度。 阅读详情
点击上方“AI派”,选择“设为星标”
最新分享,第一时间送达!
640?wx_fmt=jpeg
640?wx_fmt=gif

Pandas是数据科学和数据竞赛中常见的库,我们使用Pandas可以进行快速读取数据、分析数据、构造特征。但Pandas在使用上有一些技巧和需要注意的地方,如果你没有合适的使用,那么Pandas可能运行速度非常慢。本文将整理一些Pandas使用技巧,主要是用来节约内存和提高代码速度。

1 数据读取与存取

在Pandas中内置了众多的数据读取函数,可以读取众多的数据格式,最常见的就是read_csv函数从csv文件读取数据了。但read_csv在读取大文件时并不快,所以建议你使用read_csv读取一次原始文件,将dataframe存储为HDF或者feather格式。一般情况下HDF的读取比读取csv文件快几十倍,但HDF文件在大小上会稍微大一些。

建议1:尽可能的避免读取原始csv,使用hdf、feather或h5py格式文件加快文件读取;

在某些定长的字符数据的读取情况下,read_csv读取速度比codecs.readlines慢很多倍。同时如果你想要表格尽量占用较小的内存,可以在read_csv时就设置好每类的类型。

2 itertuples与iterrows

itertuples和iterrows都能实现按行进行迭代的操作,但在任何情况下itertuples都比iterrows快很多倍。

640?wx_fmt=png

建议2:如果必须要要用iterrows,可以用itertuples来进行替换。


3 apply、transform和agg时尽量使用内置函数

在很多情况下会遇到groupby之后做一些统计值计算,而如果用内置函数的写法会快很多。

640?wx_fmt=jpeg
transform() 方法+自定义函数,用时1分57s

640?wx_fmt=jpeg
transform() 方法+内置方法,用时712ms

640?wx_fmt=jpeg
agg() 方法+自定义函数,用时1分2s

640?wx_fmt=jpeg
agg() 方法+内置方法,用时694ms

建议3:在grouby、agg和transform时尽量使用内置函数计算。

这一部分的统计数据来自:https://www.cnblogs.com/wkang/p/9794678.html

4 第三方库并行库

由于Pandas的一些操作都是单核的,往往浪费其他核的计算时间,因此有一些第三方库对此进行了改进:

  • modin:对读取和常见的操作进行并行;

  • swifter:对apply函数进行并行操作;

当然我之前也对此类库进行了尝试,在一些情况下会快一些,但还是不太稳定。在阿里云安全赛中我是用joblib库写的并行特征提取,比单核特征提取快60倍。

建议4:如果能并行就并行,用第三方库或者自己手写多核计算。

5 代码优化思路

在优化Pandas时可以参考如下操作的时间对比:

640?wx_fmt=jpeg
建议5:在优化的过程中可以按照自己需求进行优化代码,写代码尽量避免循环,尽量写能够向量化计算的代码,尽量写多核计算的代码。

Pandas官方也写了一篇性能优化的文章,非常值得阅读:

https://pandas.pydata.org/pandas-docs/stable/user_guide/enhancingperf.html


640?wx_fmt=jpeg

?关注“AI学习社区”

如果你觉得文章还不错,请大家点个“在看”,然后分享下。你的肯定是我最大的鼓励和支持。


/ 每日赠书专区 /

今天我们的赠送的书籍为《深入浅出Python机器学习》。

本书简介:

本书内容涵盖了有监督学习、无监督学习、模型优化、自然语言处理等机器学习领域所必须掌握的知识,从内容结构上非常注重知识的实用性和可操作性。全书采用由浅入深、循序渐进的讲授方式,完全遵循和尊重初学者对机器学习知识的认知规律。本书适合有一定程序设计语言和算法基础的读者学习使用。

?↑↑点击上方小程序即可购买

/ 今日留言主题 /

你都有使用过Pandas什么骚操作,告诉王老湿一波?


近期专栏推荐

1. 

2. 

3. 

4. 

点下「在看」,给文章盖个戳吧!?

深入理解Pandas Series:一维数据处理终极指南(二) Series是Pandas中最重要的基础数据结构,其数学本质是一个带标签的数学向量。Siv∣i∈Iv∈VS{(iv∣i∈Iv∈VIII为索引集合(Index)VVV为值集合(Values)每个元素由索引标签iii和对应的值vvv组成,这种结构使得Series兼具数组和字典的特性。 阅读详情

相关推荐

优化Pandas代码性能的14个技巧

作者:禅与计算机程序设计艺术 1.背景介绍 Python的pandas模块是非常流行的数据处理库,在数据分析领域拥有极高的地位。数据量越大、处理流程复杂的情况下,利用pandas进行数据的清洗和计算通常会比纯粹用Python代码实现快很多。那么如何提升pandas代码的运行速度呢?本文将通过分析pa

AI天才研究院 1448

如何提高Pandas的运行速度?四大性能优化方法

Pandas作为数据分析的屠龙宝刀,毫不夸张的说,功能和优势都极其强大。像是支持GB数据处理,多样的数据清洗方法;支持多种开源可视化工具包,更加丰富的数据成果展示等等。因此如果能做好性能优化,就可以极大的提高Pandas的运行速度。本文为大家总结了四大优化Pandas性能的方法,感兴趣的朋友就赶紧看下去吧!

weixin_68789096的博客 2174

Pandas DataFrame遍历的性能优化:加速技巧与最佳实践

Pandas提供了许多向量化操作,这些操作可以在底层使用高度优化的C代码执行,从而显著提高性能。相比于使用循环遍历DataFrame的每一行或每一列,使用向量化操作能够以更高效的方式进行元素级的计算。例如,可以使用Pandas的矢量化字符串方法来处理DataFrame中的文本数据,而不是使用循环逐个处理每个元素。、向量化的条件表达式和并行处理等技巧,可以显著提高Pandas DataFrame遍历的性能。在处理大型数据集时,合理选择适当的方法和技巧,可以有效减少代码的执行时间,提高数据处理的效率。

RcxhClass的博客 1105

一文带你掌握常见的Pandas性能优化方法,让你的pandas飞起来!

作者:易执来源:易执Pandas是Python中用于数据处理与分析的屠龙刀,想必大家也都不陌生,但Pandas在使用上有一些技巧和需要注意的地方,尤其是对于较大的数据集而言,如果你没有适...

数据森麟 1043

TM1650数码管驱动芯片

简介 TM1650是一款国产4位共阴数码管驱动芯片,它还带有矩阵按键扫码功能。它的基本参数如下: 工作电压:3~5V 数码管驱动模式:8段x4位共阴数码管 矩阵按键驱动模式:7x4矩阵按键,不支持组合键 通信接口:类IIC,使用了IIC相同的时序,但没有完全遵守IIC的协议,不带从机地址 引脚定义 SCL:串行通信时钟线 SDA:串行通信数据线 做数码管驱动使用时 DIGx:数码管的位选引脚,灌电流驱动,最大可吸收150mA电流 A~DP:数码管的段驱动引脚,拉电流驱动,最大可输出25m

luliplus的博客 4万+

从零到一:手把手教你用C#开发AGV调度系统(附避坑指南)

本文详细介绍了如何使用C#开发高效的AGV调度系统,涵盖从环境搭建到核心算法实现的完整流程。重点解析了动态路径规划、多机协同等关键技术,并提供了实用的避坑指南和性能优化建议,帮助开发者快速构建工业级车辆控制调度系统。

blockchain9miner的博客 743

pandas 保存csv_Pandas常见的性能优化方法

Pandas是数据科学和数据竞赛中常见的库,我们使用Pandas可以进行快速读取数据、分析数据、构造特征。但Pandas在使用上有一些技巧和需要注意的地方,如果你没有合适的使用,那么Pandas可能运行速度非常慢。本文将整理一些Pandas使用技巧,主要是用来节约内存和提高代码速度。1 数据读取与存取在Pandas中内置了众多的数据读取函数,可以读取众多的数据格式,最常见的就是read_csv函数...

weixin_39843738的博客 774

Unity 数字孪生实战:PiXYZ Plugin工业模型高效处理指南

本文是Unity数字孪生实战指南,重点介绍了如何使用PiXYZ Plugin高效处理工业CAD模型。针对工业模型导入Unity时面临的格式壁垒、数据爆炸和资产混乱等核心痛点,文章提供了从环境安装、基础导入到智能减面、资产清理的完整解决方案,并分享了预设自动化、运行时导入等高级技巧与性能优化策略,帮助开发者快速打通工业设计与实时交互流程。

weixin_29009501的博客 258

推荐收藏 | Pandas常见的性能优化方法

Pandas是数据科学和数据竞赛中常见的库,我们使用Pandas可以进行快速读取数据、分析数据、构造特征。但Pandas在使用上有一些技巧和需要注意的地方,如果你没有合适...

Pysamlam的博客 200

告别迷茫!新手如何从RTKLIB命令行程序入手,快速理解GNSS解算全流程

本文为GNSS新手提供RTKLIB命令行程序实战指南,重点介绍如何通过`rnx2rtkp`后处理解算工具快速掌握GNSS解算全流程。从环境搭建、程序编译到核心算法解析,帮助读者理解RTKLIB源码结构,并通过真实数据处理案例演示完整解算过程,是入门GNSS定位技术的实用教程。

weixin_42524226的博客 359

记录思科cisco交换机升级iso步骤

Cisco Nexus 93180交换机版本升级

a635161812的博客 4378

pandas 读取csv_「技巧」Pandas常见的性能优化方法

来源: Datawhale 作者: 阿水Pandas是数据科学和数据竞赛中常见的库,我们使用Pandas可以进行快速读取数据、分析数据、构造特征。但Pandas在使用上有一些技巧和需要注意的地方,如果你没有合适的使用,那么Pandas可能运行速度非常慢。本文将整理一些Pandas使用技巧,主要是用来节约内存和提高代码速度。1 数据读取与存取在Pandas中内置了众多的数据读取函数,可以读取众多的数...

weixin_39980929的博客 1175

ABAP Development Tool for Visual Studio Code 里使用 MCP server

本文讨论了SAP ABAP开发环境中,除GitHub Copilot外,其他可作为MCP客户端接入ABAP开发工具(MCP server)的编码代理(coding agent)。GitHub Copilot是官方确认可用的工具,而其他代理如Claude Code、Cursor、Windsurf Cascade、Cline和Continue虽然理论上支持MCP协议,但要实际用于ABAP开发还需满足两个关键条件:兼容MCP协议,并能处理VS Code虚拟工作区文件系统。这些工具需要单独验证是否支持ABAP开发工

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 262

RPA手把手——Pandas 常见的性能优化方法

艺赛旗 RPA10.0全新首发免费下载 点击下载 http://www.i-search.com.cn/index.html?from=line1 Pandas是数据科学和数据竞赛中常见的库,我们使用Pandas可以进行快速读取数据、分析数据、构造特征。但Pandas在使用上有一些技巧和需要注意的地方,如果你没有合适的使用,那么Pandas可能运行速度非常慢。 1 数据读取与存取 在Pandas中...

weixin_44447687的博客 275

10、网络安全工具:Bettercap 与 Web 应用测试工具全解析

本文详细解析了网络安全工具Bettercap及其在中间人攻击和无线攻击中的应用,同时介绍了多种Web应用测试工具,如Amass、Cadaver、Dirb等,并探讨了工具的使用场景、流程、注意事项以及未来发展趋势,为网络安全测试提供了全面的指导。

u0v1w2x3的博客 233

moveit——基于octomap的碰撞检测

机械臂对棚顶进行碰撞检测。

如果想成为中心,那么就到中心去吧。 1357

pandas内置数据集_一文带你掌握常见的Pandas性能优化方法,让你的pandas飞起来!...

“阅读本文大概需要4.5分钟”Pandas是Python中用于数据处理与分析的屠龙刀,想必大家也都不陌生,但Pandas在使用上有一些技巧和需要注意的地方,尤其是对于较大的数据集而言,如果你没有适当地使用,那么可能会导致Pandas的运行速度非常慢。对于程序猿/媛而言,时间就是生命,这篇文章给大家总结了一些pandas常见的性能优化方法,希望能对你有所帮助!一、数据读取的优化读取数据...

weixin_35765686的博客 189

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

优化自定义函数_Pandas常见的性能优化方法

文章来源于Datawhale ,作者阿水Pandas是数据科学和数据竞赛中常见的库,我们使用Pandas可以进行快速读取数据、分析数据、构造特征。但Pandas在使用上有一些技巧和需要注意的地方,如果你没有合适的使用,那么Pandas可能运行速度非常慢。本文将整理一些Pandas使用技巧,主要是用来节约内存和提高代码速度。1 数据读取与存取在Pandas中内置了众多的数据读取函数,可以读取众多的数...

weixin_39860123的博客 218

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

pandas内置数据集_提速百倍的Pandas性能优化方法,让你的Pandas飞起来!

Pandas是Python中用于数据处理与分析的屠龙刀,想必大家也都不陌生,但Pandas在使用上有一些技巧和需要注意的地方,尤其是对于较大的数据集而言,如果你没有适当地使用,那么可能会导致Pandas的运行速度非常慢。对于程序猿/媛而言,时间就是生命,这篇文章给大家总结了一些pandas常见的性能优化方法,希望能对你有所帮助! 一、数据读取的优化读取数据是进行数据分析前的一个必经环节,panda...

weixin_35390150的博客 237

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

上一篇: 4-6个月,如何拿下今日头条39W年薪算法offer?
下一篇: 我认识了一年多的AI创业者以及他的磐创AI!
Wang_AI
博客等级 码龄12年 997粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值