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

pandas loc iloc ix用法詳細(xì)分析

 更新時(shí)間:2023年01月09日 16:35:21   作者:bitcarmanlee  
pandas處理數(shù)據(jù)時(shí),我們會(huì)經(jīng)??吹絛ataframe結(jié)構(gòu)使用loc, iloc, ix等方法,那么這些方法到底有啥區(qū)別,下面我們來(lái)進(jìn)行詳細(xì)分析,感興趣的朋友跟隨小編一起看看吧

1.什么是label

pandas處理數(shù)據(jù)時(shí),我們會(huì)經(jīng)常看到dataframe結(jié)構(gòu)使用loc, iloc, ix等方法。那么這些方法到底有啥區(qū)別,下面我們來(lái)進(jìn)行詳細(xì)分析。

首先我們先明確一點(diǎn),這幾個(gè)方法都可以用來(lái)過(guò)濾dataframe的行列。他們的不同,主要還是使用方式的不同。

在分析之前,我們先來(lái)明確一下標(biāo)簽label的概念。為了方便看得更清楚,先構(gòu)造一個(gè)數(shù)據(jù)集

import pandas as pd

def test_loc():
    name = ['n1', 'n2', 'n3', 'n4', 'n5', 'n6']
    age = [1, 2, 3, 4, 5, 6]
    country = ['Chi', 'Chi', 'Ame', 'Ame', 'Jp', 'Koe']
    city = ['bj', 'sh', 'ny', 'ny', 'tok', 'se']
    data = pd.DataFrame({'name': name, 'age': age, 'country': country, 'city': city})

    # label
    print(data)
  name  age country city
0   n1    1     Chi   bj
1   n2    2     Chi   sh
2   n3    3     Ame   ny
3   n4    4     Ame   ny
4   n5    5      Jp  tok
5   n6    6     Koe   se

上面的data,0,1,2,3,4,5為索引,就是我們的行標(biāo)簽。name ,age,country,city為列名,則是我們的列標(biāo)簽。

2.loc用法

我們先直接上結(jié)論:loc可以基于行列標(biāo)簽對(duì)數(shù)據(jù)進(jìn)行篩選。

下面通過(guò)實(shí)驗(yàn)來(lái)說(shuō)明。

def test_loc():
    name = ['n1', 'n2', 'n3', 'n4', 'n5', 'n6']
    age = [1, 2, 3, 4, 5, 6]
    country = ['Chi', 'Chi', 'Ame', 'Ame', 'Jp', 'Koe']
    city = ['bj', 'sh', 'ny', 'ny', 'tok', 'se']
    data = pd.DataFrame({'name': name, 'age': age, 'country': country, 'city': city})
    # 取前幾行
    print(data.loc[[0, 1, 2]])
    print()
    print(data.loc[0:2])
    print()

    # 取某幾列
    print(data.loc[:, ['name', 'age', 'city']])
    print()

    # 取幾行幾列
    print(data.loc[0:2,['name', 'age', 'city']])
    print()

2.1 選擇行

loc的整體語(yǔ)法為loc[rows, columns]。逗號(hào)前面部分為選擇的行,后面部分為選擇的列,":"表示全選。

loc[0:2]與loc[[0, 1, 2]]的效果一致,都是表示選取前3行,可以認(rèn)為此時(shí)是通過(guò)行標(biāo)簽選擇數(shù)據(jù)。

2.2 選擇列

實(shí)際操作中,最常見(jiàn)的需求就是選擇某幾列而不是所有數(shù)據(jù)。loc[:, [‘name’, ‘age’, ‘city’]]就是選擇散列,逗號(hào)前面的:表示選擇所有行。

2.3 選擇指定的行列

data.loc[0:2,[‘name’, ‘age’, ‘city’]]這種用法,意思就是選擇前三行的name,age,city這三列。

2.4 loc小結(jié)

1.就像我們一開(kāi)始提到的,loc是基于數(shù)據(jù)行列標(biāo)簽對(duì)數(shù)據(jù)進(jìn)行篩選。
2.針對(duì)行標(biāo)簽選擇時(shí),如果index是默認(rèn)的整數(shù)序列,選擇的時(shí)候包括了末端的一行。
3.":"表示選擇所有行或者所有列。

3.iloc用法

直接上結(jié)論:iloc與loc的不同在于,loc基于數(shù)據(jù)標(biāo)簽進(jìn)行篩選,而iloc基于位置進(jìn)行數(shù)據(jù)篩選,i可以認(rèn)為是integer,即在loc的基礎(chǔ)上,用integer整數(shù)當(dāng)作"索引"

看個(gè)例子

def test_iloc():
    name = ['n1', 'n2', 'n3', 'n4', 'n5', 'n6']
    age = [1, 2, 3, 4, 5, 6]
    country = ['Chi', 'Chi', 'Ame', 'Ame', 'Jp', 'Koe']
    city = ['bj', 'sh', 'ny', 'ny', 'tok', 'se']
    data = pd.DataFrame({'name': name, 'age': age, 'country': country, 'city': city})

    # iloc的索引,不包含最后一個(gè)
    print(data.iloc[0:2])
    print()

    #
    print(data.iloc[:, 0:2])
    print()
    print(data.iloc[:,[0, 1, 3]])
    print()

    # print(data.iloc[:, ['name', 'city']])
    # IndexError: .iloc requires numeric indexers, got ['name' 'city']

最后輸出為:

  name  age country city
0   n1    1     Chi   bj
1   n2    2     Chi   sh

  name  age
0   n1    1
1   n2    2
2   n3    3
3   n4    4
4   n5    5
5   n6    6

  name  age city
0   n1    1   bj
1   n2    2   sh
2   n3    3   ny
3   n4    4   ny
4   n5    5  tok
5   n6    6   se

iloc[0:2],表示選擇前兩行。注意在iloc中,末端那行不包括。因?yàn)槠鹗妓饕?,所以iloc[0:2]選擇的是第0行與第1行。

data.iloc[:, 0:2]表示選擇前兩列,data.iloc[:,[0, 1, 3]]表示選擇第0,1,3列。

如果我們嘗試用列名篩選數(shù)據(jù),data.iloc[:, [‘name’, ‘city’]]
代碼會(huì)報(bào)錯(cuò)

IndexError: .iloc requires numeric indexers, got ['name' 'city']

上面的錯(cuò)誤信息就很明確的告訴了我們,iloc方法需要numeric indexers。

4.ix

最后一個(gè)ix,是歷史版本的用法。ix的作用,現(xiàn)在用loc,iloc基本都能實(shí)現(xiàn),所以ix也基本上被loc,iloc所代替,現(xiàn)在官方不再推薦使用。

到此這篇關(guān)于pandas loc iloc ix用法詳解的文章就介紹到這了,更多相關(guān)pandas loc iloc ix用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python ansible自動(dòng)化運(yùn)維工具執(zhí)行流程

    python ansible自動(dòng)化運(yùn)維工具執(zhí)行流程

    ansible是基于 paramiko 開(kāi)發(fā)的,并且基于模塊化工作,本身沒(méi)有批量部署的能力,接下來(lái)通過(guò)本文給大家分享python ansible自動(dòng)化運(yùn)維工具的特點(diǎn)及執(zhí)行流程,感興趣的朋友跟隨小編一起看看吧
    2021-06-06
  • python按順序重命名文件并分類(lèi)轉(zhuǎn)移到各個(gè)文件夾中的實(shí)現(xiàn)代碼

    python按順序重命名文件并分類(lèi)轉(zhuǎn)移到各個(gè)文件夾中的實(shí)現(xiàn)代碼

    這篇文章主要介紹了python按順序重命名文件并分類(lèi)轉(zhuǎn)移到各個(gè)文件夾中,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 基于PyQt4和PySide實(shí)現(xiàn)輸入對(duì)話(huà)框效果

    基于PyQt4和PySide實(shí)現(xiàn)輸入對(duì)話(huà)框效果

    這篇文章主要為大家詳細(xì)介紹了基于PyQt4和PySide實(shí)現(xiàn)輸入對(duì)話(huà)框效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • Python networkx包的實(shí)現(xiàn)

    Python networkx包的實(shí)現(xiàn)

    這篇文章主要介紹了Python networkx包的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 將labelme格式數(shù)據(jù)轉(zhuǎn)化為標(biāo)準(zhǔn)的coco數(shù)據(jù)集格式方式

    將labelme格式數(shù)據(jù)轉(zhuǎn)化為標(biāo)準(zhǔn)的coco數(shù)據(jù)集格式方式

    今天小編就為大家分享一篇將labelme格式數(shù)據(jù)轉(zhuǎn)化為標(biāo)準(zhǔn)的coco數(shù)據(jù)集格式方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • python數(shù)據(jù)類(lèi)型bytes?和?bytearray的使用與區(qū)別

    python數(shù)據(jù)類(lèi)型bytes?和?bytearray的使用與區(qū)別

    本文主要介紹了python數(shù)據(jù)類(lèi)型bytes?和?bytearray的使用與區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 淺談PYTHON 關(guān)于文件的操作

    淺談PYTHON 關(guān)于文件的操作

    這篇文章主要介紹了PYTHON 關(guān)于文件的操作,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Python通過(guò)psd-tools解析PSD文件的實(shí)現(xiàn)

    Python通過(guò)psd-tools解析PSD文件的實(shí)現(xiàn)

    本文主要介紹了Python通過(guò)psd-tools解析PSD文件的實(shí)現(xiàn),主要包括如何獲取PSD文件的基本信息、遍歷圖層、提取圖層詳細(xì)信息、保存和創(chuàng)建PSD文件,感興趣的可以了解一下
    2023-12-12
  • Python實(shí)現(xiàn)刪除重復(fù)文件的示例代碼

    Python實(shí)現(xiàn)刪除重復(fù)文件的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何利用Python實(shí)現(xiàn)刪除重復(fù)文件功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定的幫助,感興趣的小伙伴的可以了解一下
    2023-02-02
  • Python3利用print輸出帶顏色的彩色字體示例代碼

    Python3利用print輸出帶顏色的彩色字體示例代碼

    用Python寫(xiě)命令行程序的時(shí)候,單一的輸出顏色太單調(diào)了,所以下面這篇文章主要給大家介紹了關(guān)于Python3利用print輸出帶顏色的彩色字體的相關(guān)資料,需要的朋友可以參考下
    2019-04-04

最新評(píng)論

大英县| 织金县| 英山县| 措勤县| 玉溪市| 嘉善县| 长宁县| 鄂温| 纳雍县| 澜沧| 皮山县| 南丰县| 汉中市| 定结县| 昌宁县| 汉川市| 栾城县| 平陆县| 商洛市| 绥中县| 安达市| 五原县| 金华市| 故城县| 资中县| 余姚市| 石河子市| 永寿县| 邳州市| 双桥区| 闵行区| 长寿区| 花莲市| 南华县| 博客| 横峰县| 铜川市| 毕节市| 肃北| 和平区| 读书|