主要观点总结
本文主要讨论了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 函数 用于使用
………………………………