最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Pandas索引器 loc 和 iloc 比較及代碼示例

 更新時(shí)間:2026年01月08日 09:57:29   作者:Humbunklung  
本文主要介紹了Pandas索引器 loc 和 iloc 比較及代碼示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

Pandas 索引器 loc 和 iloc 比較及代碼示例

以下是針對 Pandas 中 lociloc 的深度對比分析及代碼示例,結(jié)合核心差異、使用場景和底層機(jī)制展開說明:

一、核心差異解析

特性loc (標(biāo)簽索引)iloc (位置索引)
索引類型行/列標(biāo)簽(字符串、日期等)行/列整數(shù)位置(從0開始)
切片行為包含結(jié)束標(biāo)簽(閉區(qū)間)不包含結(jié)束位置(左閉右開)
布爾索引直接支持條件表達(dá)式(更直觀)需先生成布爾數(shù)組再操作
索引靈活性支持非整數(shù)標(biāo)簽(如字符串索引)僅支持整數(shù)位置

二、關(guān)鍵場景代碼示例

1. 基礎(chǔ)索引對比

import pandas as pd

# 創(chuàng)建帶自定義索引的DataFrame
data = {"Age": [25, 32, 28, 40], "City": ["北京", "上海", "廣州", "深圳"]}
df = pd.DataFrame(data, index=["Alice", "Bob", "Charlie", "David"])

# loc按標(biāo)簽選擇 → 獲取Bob行所有列
print(df.loc["Bob"])  # 輸出: Age 32, City 上海

# iloc按位置選擇 → 獲取第1行所有列(索引0為Alice)
print(df.iloc[1])     # 輸出: 同上(Bob行)

Age     32
City    上海
Name: Bob, dtype: object
Age     32
City    上海
Name: Bob, dtype: object

2. 切片行為差異

# loc切片包含結(jié)束標(biāo)簽 → 選擇Alice到Charlie行
print(df.loc["Alice":"Charlie"])  # 輸出3行數(shù)據(jù)

# iloc切片不包含結(jié)束位置 → 選擇0至1行(不含索引2)
print(df.iloc[0:2])               # 僅輸出Alice和Bob行

         Age City
Alice     25   北京
Bob       32   上海
Charlie   28   廣州
       Age City
Alice   25   北京
Bob     32   上海

3. 布爾索引使用

# loc直接條件篩選 → 年齡>30的行
print(df.loc[df["Age"] > 30])     # 輸出Bob和David行

# iloc需分兩步 → 先生成掩碼再選擇
mask = df["Age"] > 30
print(df.iloc[mask.values])        # 需用.values轉(zhuǎn)為數(shù)組

       Age City
Bob     32   上海
David   40   深圳
       Age City
Bob     32   上海
David   40   深圳

4. 混合行列選擇

# loc選擇多列 → 所有行 + "City"列
print(df.loc[:, "City"])           # 輸出城市列所有數(shù)據(jù)

# iloc選擇連續(xù)列 → 所有行 + 第1列(列索引從0開始)
print(df.iloc[:, 1])               # 同上(City列位置為1)

Alice      北京
Bob        上海
Charlie    廣州
David      深圳
Name: City, dtype: object
Alice      北京
Bob        上海
Charlie    廣州
David      深圳
Name: City, dtype: object

三、高級技巧與性能

1. 函數(shù)式索引

# loc + lambda → 篩選Age為偶數(shù)的行
print(df.loc[lambda x: x["Age"] % 2 == 0])  # 輸出Bob(32), David(40)

# iloc + lambda → 篩選索引位置為奇數(shù)的行
print(df.iloc[lambda x: [i for i in range(len(x)) if i % 2 == 1]])  # 輸出Bob行

         Age City
Bob       32   上海
Charlie   28   廣州
David     40   深圳
       Age City
Bob     32   上海
David   40   深圳

2. 性能優(yōu)化建議

  • 大型數(shù)據(jù)集:優(yōu)先用 iloc(整數(shù)位置計(jì)算更快)
  • 復(fù)雜索引:用 loc 避免位置計(jì)算錯(cuò)誤(如時(shí)間序列索引)
  • 混合場景:若需標(biāo)簽+位置混合索引,先重置索引再用 iloc
df_reset = df.reset_index()
df_reset.iloc[1:3, 0:2]  # 選擇第1-2行,第0-1列
indexAge
1Bob32
2Charlie28

四、特殊場景處理

1. 整數(shù)索引陷阱

當(dāng)行索引為整數(shù)時(shí),loc 會優(yōu)先識別為標(biāo)簽而非位置:

df_int_index = pd.DataFrame({"Value": [10, 20]}, index=[1, 2])

# loc嘗試按標(biāo)簽訪問 → 報(bào)錯(cuò)(無標(biāo)簽0)
# df_int_index.loc[0]  # KeyError

# iloc按位置訪問 → 正常
print(df_int_index.iloc[0])  # 輸出索引1的行(Value:10)

Value    10
Name: 1, dtype: int64

2. 負(fù)索引支持

iloc 支持負(fù)數(shù)索引(從末尾計(jì)數(shù)):

print(df.iloc[-1])  # 輸出最后一行(David)

Age     40
City    深圳
Name: David, dtype: object

五、總結(jié):選擇策略

場景推薦方法原因
已知行/列標(biāo)簽(如列名為"Age")loc直接標(biāo)簽訪問,語義清晰
按行號/列號操作(如前三行)iloc位置計(jì)算高效
時(shí)間序列數(shù)據(jù)(日期索引)loc避免位置漂移(如df.loc["2023":"2025"])
大數(shù)據(jù)集遍歷iloc整數(shù)位置操作速度更快

最佳實(shí)踐:優(yōu)先用 loc 保證可讀性,性能敏感時(shí)切 iloc。始終通過 print(df.head()) 確認(rèn)數(shù)據(jù)結(jié)構(gòu),避免索引混淆。

到此這篇關(guān)于Pandas索引器 loc 和 iloc 比較及代碼示例的文章就介紹到這了,更多相關(guān)Pandas索引器 loc 和 iloc內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python使用lambda表達(dá)式對字典排序操作示例

    Python使用lambda表達(dá)式對字典排序操作示例

    這篇文章主要介紹了Python使用lambda表達(dá)式對字典排序操作,結(jié)合實(shí)例形式分析了lambda表達(dá)式實(shí)現(xiàn)字典按鍵排序、按值排序、多條件排序相關(guān)操作技巧,需要的朋友可以參考下
    2019-07-07
  • 使用python批量轉(zhuǎn)換文件編碼為UTF-8的實(shí)現(xiàn)

    使用python批量轉(zhuǎn)換文件編碼為UTF-8的實(shí)現(xiàn)

    這篇文章主要介紹了使用python批量轉(zhuǎn)換文件編碼為UTF-8的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • python數(shù)字圖像處理實(shí)現(xiàn)直方圖與均衡化

    python數(shù)字圖像處理實(shí)現(xiàn)直方圖與均衡化

    在圖像處理中,直方圖是非常重要,也是非常有用的一個(gè)處理要素。這篇文章主要介紹了python數(shù)字圖像處理實(shí)現(xiàn)直方圖與均衡化,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • Python操作SQLite簡明教程

    Python操作SQLite簡明教程

    這篇文章主要介紹了Python操作SQLite簡明教程,簡單明了的入門教程,包含連接、建表、增刪修查等例子,需要的朋友可以參考下
    2014-07-07
  • Keras:Unet網(wǎng)絡(luò)實(shí)現(xiàn)多類語義分割方式

    Keras:Unet網(wǎng)絡(luò)實(shí)現(xiàn)多類語義分割方式

    本文主要利用U-Net網(wǎng)絡(luò)結(jié)構(gòu)實(shí)現(xiàn)了多類的語義分割,并展示了部分測試效果,希望對你有用!
    2020-06-06
  • Python檢查 云備份進(jìn)程是否正常運(yùn)行代碼實(shí)例

    Python檢查 云備份進(jìn)程是否正常運(yùn)行代碼實(shí)例

    這篇文章主要介紹了Python檢查 云備份進(jìn)程是否正常運(yùn)行代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • TensorFlow進(jìn)階學(xué)習(xí)定制模型和訓(xùn)練算法

    TensorFlow進(jìn)階學(xué)習(xí)定制模型和訓(xùn)練算法

    本文將為你提供關(guān)于 TensorFlow 的中級知識,你將學(xué)習(xí)如何通過子類化構(gòu)建自定義的神經(jīng)網(wǎng)絡(luò)層,以及如何自定義訓(xùn)練算法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Python中requests庫的基本概念與具體使用方法

    Python中requests庫的基本概念與具體使用方法

    requests庫是用python編寫的基于urllib,requests唯一的一個(gè)非轉(zhuǎn)基因的Python HTTP庫,下面這篇文章主要給大家介紹了關(guān)于Python中requests庫的基本概念與具體使用方法,需要的朋友可以參考下
    2022-08-08
  • Python數(shù)據(jù)可視化探索實(shí)例分享

    Python數(shù)據(jù)可視化探索實(shí)例分享

    這篇文章主要介紹了Python數(shù)據(jù)可視化探索實(shí)例分享,數(shù)據(jù)可視化是指用圖形或表格的方式來呈現(xiàn)數(shù)據(jù),關(guān)于更多相關(guān)介紹需要的小伙伴可以參考下面文章的具體內(nèi)容
    2022-05-05
  • python調(diào)用sikulixide庫實(shí)現(xiàn)自動化腳本方法實(shí)例

    python調(diào)用sikulixide庫實(shí)現(xiàn)自動化腳本方法實(shí)例

    SikuliX IDE是一個(gè)基于圖像識別的自動化測試工具,主要用于UI測試,它本身并不直接支持文本文件讀取操作,因?yàn)樗饕糜谔幚砥聊簧系膱D片和截圖,這篇文章主要介紹了python調(diào)用sikulixide庫實(shí)現(xiàn)自動化腳本的相關(guān)資料,需要的朋友可以參考下
    2025-11-11

最新評論

三亚市| 额尔古纳市| 延庆县| 南川市| 常熟市| 永修县| 宣城市| 阿巴嘎旗| 铜山县| 玉屏| 锡林郭勒盟| 大荔县| 怀化市| 如皋市| 札达县| 寿光市| 乌苏市| 确山县| 吉木萨尔县| 南木林县| 汝南县| 合作市| 凤凰县| 丹东市| 富顺县| 图木舒克市| 日土县| 澳门| 即墨市| 连南| 东宁县| 湘潭县| 马关县| 阿瓦提县| 延吉市| 安远县| 天等县| 乌海市| 昌图县| 东辽县| 宁河县|