专栏名称: 数据分析与开发
伯乐在线旗下账号,分享数据库相关技术文章、教程和工具,另外还包括数据库相关的工作。偶尔也谈谈程序员人生 :)
今天看啥  ›  专栏  ›  数据分析与开发

不要再在 pandas 循环中使用 loc/iloc 了!

数据分析与开发  · 公众号  · 数据库  · 2024-08-21 11:45

主要观点总结

本文主要讨论了Python中循环使用“loc”和“iloc”的时间效率问题,以及提供了使用“at”和“iat”作为替代方案的说明。文章还解释了“loc”、“iloc”、“at”和“iat”之间的区别及其在运行时间上存在差异的原因。

关键观点总结

关键观点1: “loc”和“iloc”在Pandas中的用途

“loc”用于使用行索引和列名访问DataFrame内的值,而“iloc”用于使用索引和列号访问值。

关键观点2: 使用“loc”在循环中的时间消耗

在DataFrame df中添加新列“c”的示例中,使用“loc”进行迭代和更新值所需的时间大约为40分钟。

关键观点3: 使用“at”作为“loc”的替代方案

通过使用“at”替换“loc”(或“iat”替换“iloc”)可以显著提高代码的执行效率,执行时间可以缩短约60倍。

关键观点4: 'at'和'iat'与'loc'和'iloc'之间的运行时间差异的原因

'at'和'iat'用于访问标量值,是轻量级的,因此比'loc'和'iloc'(用于访问系列/数据帧)执行速度快。

关键观点5: 建议

在Python的循环中使用“loc”/“iloc”并不是最佳选择,应尽量避免使用。相反,应在需要的地方使用“at”/“iat”,因为它们更快速。


文章预览

作者:Python之栈 https://blog.csdn.net/weixin_53707653/article/details/141165983 最近,我在尝试使用 Python 中的循环,并意识到在循环中使用“iloc”/“loc”需要花费大量时间来执行。下一个问题是为什么“loc”花费的时间太长,以及“loc”的替代方案是什么? 本文中,将通过一些实际例子来回答这些问题。 什么是 loc? loc[] 函数是一个 pandas 函数,用于使用行索引和列名访问 DataFrame 内的值。当您知道要访问哪一行和哪一列时,可以使用它。 通过一个例子来理解 loc 。我们有以下名为 df 的 pandas DataFrame(如下所示),我们想要访问列“a”中第二行对应的值,即 10。 我们可以使用以下代码访问该值: ##df.loc[index, column_name] df.loc[1, 'a' ] ### 输出:10 类似地, iloc 用于使用索引和列号访问值。 ##df.loc[index, column_number] df.iloc[1,0] ### 输出:10 因此, loc 函数 用于使用 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览