搜索
首页后端开发Python教程pandas 的 DataFrame 选择的 `loc` 和 `iloc` 有什么区别?

What's the Difference Between pandas' `loc` and `iloc` for DataFrame Selection?

iloc 和 loc 有什么不同?

在 Python 的 pandas 库中,loc 和 iloc 函数用于对 DataFrame 进行切片。虽然它们有一些相似之处,但它们的主要目的和基本机制存在显着差异。

loc 与 iloc:基于标签与基于位置的选择

loc基于标签进行操作,标签是与行或列关联的索引值。它通过将行(或列)的标签与指定的选择标准相匹配来检索行(或列)。例如,df.loc[:5] 将返回 DataFrame 的前五行,其中标签按升序排列。

iloc 另一方面,基于整数位置。它根据行(或列)在 DataFrame 中的位置来选择行(或列)。例如,df.iloc[:5] 也将返回前五行,但其选择是基于序数位置(从 0 开始的索引)。

说明区别的示例

考虑以下具有非单调索引的 DataFrame:

s = pd.Series(list("abcdef"), index=[49, 48, 47, 0, 1, 2]) 

使用 loc 和 iloc 检索前五个元素:

s.loc[:5]   # row by row label (inclusive)
s.iloc[:5]  # row by row location (exclusive)

结果不同:

  • s.loc[:5] 返回索引标签为 0 到 5(含)的行,结果是:
0    d
1    e
2    f
  • s.iloc[:5] 返回位置 0 到 4 的行(独家),导致:
49    a
48    b
47    c
0    d
1    e

一般差异

总结 loc 和 iloc 之间的一般差异:

  • loc:索引标签-based,按标签精确选择。
  • iloc:基于整数位置,按标签选择位置。
  • loc 可以处理非单调索引和越界标签,而 iloc 在这种情况下会引发错误。
  • 在某些情况下,iloc 比 loc 执行得更快,尤其是当索引是数字且按顺序排列。

其他注意事项

需要注意的是iloc 也可以对 DataFrame 的列进行操作,但其语法保持不变。然而 loc 在选择列时可以使用轴标签,提供更大的灵活性。

更多信息,请参阅 pandas 文档中的[索引和切片](https://pandas.pydata.org/docs/ user_guide/indexing.html).

以上是pandas 的 DataFrame 选择的 `loc` 和 `iloc` 有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
列表和阵列之间的选择如何影响涉及大型数据集的Python应用程序的整体性能?列表和阵列之间的选择如何影响涉及大型数据集的Python应用程序的整体性能?May 03, 2025 am 12:11 AM

ForhandlinglargedatasetsinPython,useNumPyarraysforbetterperformance.1)NumPyarraysarememory-efficientandfasterfornumericaloperations.2)Avoidunnecessarytypeconversions.3)Leveragevectorizationforreducedtimecomplexity.4)Managememoryusagewithefficientdata

说明如何将内存分配给Python中的列表与数组。说明如何将内存分配给Python中的列表与数组。May 03, 2025 am 12:10 AM

Inpython,ListSusedynamicMemoryAllocationWithOver-Asalose,而alenumpyArraySallaySallocateFixedMemory.1)listssallocatemoremoremoremorythanneededinentientary上,respizeTized.2)numpyarsallaysallaysallocateAllocateAllocateAlcocateExactMemoryForements,OfferingPrediCtableSageButlessemageButlesseflextlessibility。

您如何在Python数组中指定元素的数据类型?您如何在Python数组中指定元素的数据类型?May 03, 2025 am 12:06 AM

Inpython,YouCansspecthedatatAtatatPeyFelemereModeRernSpant.1)Usenpynernrump.1)Usenpynyp.dloatp.dloatp.ploatm64,formor professisconsiscontrolatatypes。

什么是Numpy,为什么对于Python中的数值计算很重要?什么是Numpy,为什么对于Python中的数值计算很重要?May 03, 2025 am 12:03 AM

NumPyisessentialfornumericalcomputinginPythonduetoitsspeed,memoryefficiency,andcomprehensivemathematicalfunctions.1)It'sfastbecauseitperformsoperationsinC.2)NumPyarraysaremorememory-efficientthanPythonlists.3)Itoffersawiderangeofmathematicaloperation

讨论'连续内存分配”的概念及其对数组的重要性。讨论'连续内存分配”的概念及其对数组的重要性。May 03, 2025 am 12:01 AM

Contiguousmemoryallocationiscrucialforarraysbecauseitallowsforefficientandfastelementaccess.1)Itenablesconstanttimeaccess,O(1),duetodirectaddresscalculation.2)Itimprovescacheefficiencybyallowingmultipleelementfetchespercacheline.3)Itsimplifiesmemorym

您如何切成python列表?您如何切成python列表?May 02, 2025 am 12:14 AM

SlicingaPythonlistisdoneusingthesyntaxlist[start:stop:step].Here'showitworks:1)Startistheindexofthefirstelementtoinclude.2)Stopistheindexofthefirstelementtoexclude.3)Stepistheincrementbetweenelements.It'susefulforextractingportionsoflistsandcanuseneg

在Numpy阵列上可以执行哪些常见操作?在Numpy阵列上可以执行哪些常见操作?May 02, 2025 am 12:09 AM

numpyallowsforvariousoperationsonArrays:1)basicarithmeticlikeaddition,减法,乘法和division; 2)evationAperationssuchasmatrixmultiplication; 3)element-wiseOperations wiseOperationswithOutexpliitloops; 4)

Python的数据分析中如何使用阵列?Python的数据分析中如何使用阵列?May 02, 2025 am 12:09 AM

Arresinpython,尤其是Throughnumpyandpandas,weessentialFordataAnalysis,offeringSpeedAndeffied.1)NumpyArseNable efflaysenable efficefliceHandlingAtaSetSetSetSetSetSetSetSetSetSetSetsetSetSetSetSetsopplexoperationslikemovingaverages.2)

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版