在 Python 的 pandas 函式庫中,loc 和 iloc 函式用於對 DataFrame 進行切片。雖然它們有一些相似之處,但它們的主要目的和基本機制存在顯著差異。
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)
結果不同:
0 d 1 e 2 f
49 a 48 b 47 c 0 d 1 e
總結loc 和iloc 之間的一般差異:
需要注意的是iloc 也可以對 DataFrame 的欄位進行操作,但其語法保持不變。然而 loc 在選擇列時可以使用軸標籤,提供更大的靈活性。
更多信息,請參閱 pandas 文件中的[索引和切片](https://pandas.pydata.org/docs/ user_guide/indexing.html).
以上是pandas 的 DataFrame 選擇的 `loc` 和 `iloc` 有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!