返回顶部
首页 > 资讯 > 精选 >pandas如何提升计算效率
  • 811
分享到

pandas如何提升计算效率

2023-06-15 06:06:55 811人浏览 八月长安
摘要

这篇文章给大家分享的是有关pandas如何提升计算效率的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言Pandas是为一次性处理整个行或列的矢量化操作而设计的,循环遍历每个单元格、行或列并不是它的设计用途。所以

这篇文章给大家分享的是有关pandas如何提升计算效率的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

前言

Pandas是为一次性处理整个行或列的矢量化操作而设计的,循环遍历每个单元格、行或列并不是它的设计用途。所以,在使用Pandas时,你应该考虑高度可并行化的矩阵运算。

一、避免使用for循环

尽量使用列号或者行号进行矩阵检索,避免使用for循环。

1.1使用for循环

import osimport pandas as pdimport datetimepath = r'E:\科研文件\shiyan\LZQ\LZQ_all_sampledata.csv'def read_csv(target_csv):    target = pd.read_csv(path,header=None,sep=',')    return targetstart_time = datetime.datetime.now()a = read_csv(path)for i in range(10000):    b = a.iloc[i]end_time = datetime.datetime.now()print(end_time-start_time)

耗时:0:00:02.455211

1.2使用行号检索

path = r'E:\科研文件\shiyan\LZQ\LZQ_all_sampledata.csv'def read_csv(target_csv):    target = pd.read_csv(path,header=None,sep=',')    return targetstart_time = datetime.datetime.now()a = read_csv(path)b = a.iloc[10000]end_time = datetime.datetime.now()print(end_time-start_time)

耗时:0:00:00.464756

二、使用for循环的条件下提高效率

2.0 如果必须使用for循环如何提高效率

我们可以做的最简单但非常有价值的加速是使用Pandas的内置 .iterrows() 函数。

在上一节中编写for循环时,我们使用了 range() 函数。然而,当我们在python中对大范围的值进行循环时,生成器往往要快得多。

Pandas的 .iterrows() 函数在内部实现了一个生成器函数,该函数将在每次迭代中生成一行Dataframe。更准确地说,.iterrows() 为DataFrame中的每一行生成(index, Series)的对(元组)。这实际上与在原始Python中使用 enumerate() 之类的东西是一样的,但运行速度要快得多!

生成器(Generators)
生成器函数允许你声明一个行为类似迭代器的函数,也就是说,它可以在for循环中使用。这大大简化了代码,并且比简单的for循环更节省内存。

当你想要处理一个庞大的列表时,比如10亿个浮点数,问题就出现了。使用for循环,在内存中创建了大量的内存huge列表,并不是每个人都有无限的RAM来存储这样的东西!

生成器将创建元素时,仅在需要时将它们存储在内存中。一次一个。这意味着,如果必须创建10亿个浮点数,那么只能一次将它们存储在内存中。Python中的range()函数使用生成器来构建列表。

也就是说,如果你想多次迭代列表并且它足够小以适应内存,那么使用for循环和range函数会更好。这是因为每次访问list值时,生成器和range都会重新生成它们,而range是一个静态列表,并且内存中已存在整数以便快速访问。

2.1使用range

import osimport pandas as pdimport datetimepath = r'E:\科研文件\shiyan\LZQ\LZQ_all_sampledata.csv'def read_csv(target_csv):    target = pd.read_csv(path,header=None,sep=',')    return targetstart_time = datetime.datetime.now()a = read_csv(path)for data_row in range(a.shape[0]):    b = a.iloc[data_row]end_time = datetime.datetime.now()print(end_time-start_time)

耗时:0:00:07.642816

2.2使用 .iterrows() 代替 range

import osimport pandas as pdimport datetimepath = r'E:\科研文件\shiyan\LZQ\LZQ_all_sampledata.csv'def read_csv(target_csv):    target = pd.read_csv(path,header=None,sep=',')    return targetstart_time = datetime.datetime.now()a = read_csv(path)for index,data_row in a.iterrows():    b = data_rowend_time = datetime.datetime.now()print(end_time-start_time)

耗时:0:00:03.513161

三、使用.apply

iterrows()函数极大地提高了速度,但我们还远远没有完成。请始终记住,当使用为向量操作设计的库时,可能有一种方法可以在完全没有for循环的情况下最高效地完成任务。

为我们提供此功能的Pandas功能是 .apply() 函数。apply()函数接受另一个函数作为输入,并沿着DataFrame的轴(行、列等)应用它。在传递函数的这种情况下,lambda通常可以方便地将所有内容打包在一起。

感谢各位的阅读!关于“pandas如何提升计算效率”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: pandas如何提升计算效率

本文链接: https://lsjlt.com/news/278567.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • pandas如何提升计算效率
    这篇文章给大家分享的是有关pandas如何提升计算效率的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言Pandas是为一次性处理整个行或列的矢量化操作而设计的,循环遍历每个单元格、行或列并不是它的设计用途。所以...
    99+
    2023-06-15
  • pandas提升计算效率的一些方法汇总
    前言 Pandas是为一次性处理整个行或列的矢量化操作而设计的,循环遍历每个单元格、行或列并不是它的设计用途。所以,在使用Pandas时,你应该考虑高度可并行化的矩阵运算。 一、避...
    99+
    2024-04-02
  • 效率的巅峰:分时操作系统如何提升计算机利用率
    提高吞吐量 分时操作系统通过提高计算机吞吐量来提高利用率。吞吐量是指计算机在给定时间内执行的任务数量。通过允许多个用户同时执行任务,分时操作系统可以提高吞吐量,因为一个用户在等待进行输入或输出操作时,另一个用户可以使用 CPU。 减少响应...
    99+
    2024-03-15
    分时操作系统
  • 中小企业用户如何通过云计算提升业务效率
    中小企业用户如何通过云计算提升业务效率?中小企业是经济中不可或缺的一部分,它们在创造就业机会、推动经济增长、满足市场需求等方面发挥着重要的作用。然而,由于资源有限和竞争激烈,许多中小企业往往面临着提高业务效率、降低成本的挑战。云计算作为一...
    99+
    2024-01-23
    云服务器 云计算 云服务器知识
  • 如何提升MYSQL查询效率
    这篇文章主要介绍了如何提升MYSQL查询效率,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。MySQL数据库执行效率对程序的执行速度有很大的影...
    99+
    2024-04-02
  • 如何提升JavaScript递归效率
    这篇文章将为大家详细讲解有关如何提升JavaScript递归效率,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。递归是拖慢脚本运行速度的大敌之一。太多的递归会让浏览器变得越...
    99+
    2024-04-02
  • 提升Python计算效率的技巧与实践秘籍
    Python运算符号技巧与实践:提高计算效率的秘籍引言:在Python编程中,对于大多数的任务来说,程序的效率通常不是最重要的考量因素。然而,在处理大规模数据集或计算密集型任务时,优化代码以提高计算效率变得非常重要。Python提供了一些强...
    99+
    2023-12-30
    Python 技巧 运算符号
  • PHP和LeetCode:如何利用NumPy库提升算法效率?
    在算法竞赛中,优化算法效率是非常重要的。而NumPy库是一个高效的数学库,它可以帮助我们快速地处理大量的数据。在这篇文章中,我们将介绍如何使用NumPy库来提升PHP算法的效率,并以LeetCode题目为例进行演示。 NumPy库介绍 ...
    99+
    2023-10-20
    numpy leetcode numy
  • Windows下的分布式计算:如何提高效率?
    随着计算机技术的发展和计算能力的不断提高,分布式计算已经成为了现代计算机领域中的一个热门话题。在这篇文章中,我们将介绍如何在Windows操作系统下使用分布式计算技术,以提高计算效率。 一、分布式计算的概念和基础知识 分布式计算是指将一个...
    99+
    2023-10-14
    分布式 windows numpy
  • 如何提升Vista SP2搜索效率
    今天就跟大家聊聊有关如何提升Vista SP2搜索效率,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。相信很多朋友都已经用上了Windows Vista,它的搜索功能极为强大,除了可以...
    99+
    2023-06-14
  • Python pandas如何计算每行的增长率与累计增长率
    小编给大家分享一下Python pandas如何计算每行的增长率与累计增长率,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!读取数据:FacebookDf=pd.read_excel(r'D:\jupyte...
    99+
    2023-06-29
  • VUE计算属性快速入门:用计算属性提升你的开发效率
    计算属性的定义与使用 在 Vue 中,计算属性是通过 computed 选项来定义的。该选项是一个函数,它返回一个要计算的值。例如,以下代码定义了一个计算属性 fullName,它将 firstName 和 lastName 两个数据属...
    99+
    2024-02-27
    计算属性 Vue.js 响应式 缓存 性能
  • 【效率大师】优化 VUE 计算属性,提升应用性能
    VUE、计算属性、性能优化、侦听器、缓存 1. 缓存计算属性值 当计算属性依赖的值没有改变时,避免重新计算可以提高性能。使用 cache 修饰符可以让 VUE 缓存计算属性的值,仅在依赖项发生变化时才重新计算。例如: computed...
    99+
    2024-02-20
    优化 VUE 计算属性可以有效提升应用性能 尤其是在处理大量数据时。本文将介绍优化 VUE 计算属性的最佳实践 从缓存值到使用侦听器 帮助开发者充分利用 VUE 提供的强大功能。
  • 如何提升SQLServer Delete数据的效率
    场景: 对一张3亿的大表进行Delete。 通过中间表实现。 先把需要归档的数据写入历史表Cou_History..Cou_History。 把需要删除表的字段条件写入中间表。 select S...
    99+
    2024-04-02
  • 如何提升香港服务器效率
    提升香港服务器效率的方法:1、通过在线实时的匹配实际负荷容量,提升香港服务器工作效率;2、整合香港服务器的所有资源,将服务器进行虚拟化;3、利用更多的节能设备,来降低香港服务器的功率消耗。匹配服务器容量与实际负荷即使是最好的虚拟化和最新刷新...
    99+
    2024-04-02
  • 如何利用node提升工作效率
    这篇文章主要为大家展示了“如何利用node提升工作效率”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何利用node提升工作效率”这篇文章吧。在工作项目中需要依...
    99+
    2024-04-02
  • mysql如何提升跨表查询效率
    mysql使用索引提升跨表的查询效率索引是帮助mysql高效获取数据的数据结构。其原理是通过不断的缩小想要获得数据的范围来筛选出最终想要的结果,同时把随机的事件变成顺序的事件,也就是我们总是通过同一种查找方式来锁定数据。mysql中如果没有...
    99+
    2024-04-02
  • 如何提升 C++ 函数执行效率?
    提升 c++++ 函数执行效率的技巧包括:避免不必要的复制拷贝、使用局部变量、减少函数调用开销、使用内联函数、优化循环、使用缓存。 如何提升 C++ 函数执行效率? 在 C++ 中编写...
    99+
    2024-04-18
    c++ 函数效率
  • Golang如何提升数据处理效率?
    golang 通过并发性、高效内存管理、原生数据结构和丰富的第三方库,提升数据处理效率。具体优势包括:并行处理:协程支持同时执行多个任务。高效内存管理:垃圾回收机制自动管理内存。高效数据...
    99+
    2024-05-08
    golang 数据处理
  • IDE中的Python NumPy:如何提高分布式计算效率?
    Python NumPy是一个用于数值计算的Python库,它提供了高效的多维数组操作功能,并且拥有丰富的数学函数库。作为一个广泛应用于科学计算和数据分析领域的工具,Python NumPy在分布式计算方面也有着重要的作用。 在分布式计算中...
    99+
    2023-10-30
    numpy 分布式 ide
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作