聊聊Python pandas 中l(wèi)oc函數(shù)的使用,及跟iloc的區(qū)別說明
loc和iloc的意思
首先,loc是location的意思,和iloc中i的意思是指integer,所以它只接受整數(shù)作為參數(shù),詳情見下面。
loc和iloc的區(qū)別及用法展示
1.區(qū)別
loc works on labels in the index. iloc works on the positions in the index (so it only takes integers).
2.用法展示
首先創(chuàng)建一個(gè)dataframe:
1)loc為Selection by Label函數(shù),即為按標(biāo)簽取數(shù)據(jù),標(biāo)簽是什么,就是上面的'0'~‘4', ‘A'~‘B'。
例如第一個(gè)參數(shù)選擇index,第二個(gè)參數(shù)選擇column,如下圖:
建議寫df.loc[0, :],這樣可以清楚的看出為第0行的所有記錄,同樣如果取第'A'列的所有記錄,可以寫df.loc[:, ‘A'],如下圖:
:表示所有,[]里邊為先行后列。
2)iloc函數(shù)為Selection by Position,即按位置選擇數(shù)據(jù),即第n行,第n列數(shù)據(jù),只接受整型參數(shù)
記住,0:2為左閉右開區(qū)間,即取0,1,如下圖:
若要取第一列的所有數(shù)據(jù),則為df.iloc[:, 0],記住不接受'A'作為參數(shù),如下圖:
補(bǔ)充:只需一個(gè)例子幫你搞清并記住python loc和iloc
幫你區(qū)分python loc和iloc
最基本的概念loc通常用于行標(biāo)簽和列標(biāo)簽,iloc通常直接用于行序號(hào)和列序號(hào),具體舉個(gè)例子幫助大家理解。
創(chuàng)建一個(gè)以abcd為索引,四行三列的Dataframe。
df = pd.DataFrame({'number':[10,20,30,20], '科目':['語文','數(shù)學(xué)','英語','化學(xué)'], '名稱':['小米','華為','蘋果','聯(lián)想']},index=['a','b','c','d']) print(df)
結(jié)果如圖所示 :
先來看loc:
print(df.loc['a':'c']) print(df.loc[['a','c']]) print(df.loc[:'c'])
分別輸出a行到c行;a行和c行;a行到c行。
如圖所示:
還可以設(shè)置取出某幾行某幾列:
print(df.loc[:'c',['number','科目']])
結(jié)果如下圖所示:取出a到c行的number和科目列。
如下圖所示:
loc基本用法就這些。實(shí)際上iloc用法和loc差不多,但iloc不是直接取已有索引。而是默認(rèn)索引就是1,2,3,4~~~
同樣的我們用iloc做下上述操作。
print(df.iloc[0:3]) print(df.iloc[[0,2]]) print(df.iloc[:3])
結(jié)果同樣如上圖所示:
用iloc取出a到c行的number和科目列:
print(df.iloc[0:3,[0,1]])
結(jié)果如下圖所示:
我相信讀到這里大家應(yīng)該就理解了它們的用法。最后再提醒大家一下,loc不管行還是列調(diào)用的都是Dataframe自身的行標(biāo)簽和列標(biāo)簽。
而iloc調(diào)用的是行[1,2,3,4~],列[1,2,3,4]。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
Python getsizeof()和getsize()區(qū)分詳解
這篇文章主要介紹了Python getsizeof()和getsize()區(qū)分詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11使用Django搭建網(wǎng)站實(shí)現(xiàn)商品分頁功能
這篇文章主要介紹了使用Django搭建網(wǎng)站實(shí)現(xiàn)商品分頁功能,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05Python利用sqlacodegen自動(dòng)生成ORM實(shí)體類示例
這篇文章主要介紹了Python利用sqlacodegen自動(dòng)生成ORM實(shí)體類,結(jié)合實(shí)例形式分析了Python sqlacodegen安裝技巧ORM實(shí)體類相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-06-06pymongo如何通過oplog獲取數(shù)據(jù)(mongodb)
使用MongoDB的oplog(操作日志)進(jìn)行數(shù)據(jù)同步是高級(jí)的用法,主要用于復(fù)制和故障恢復(fù),這篇文章主要介紹了pymongo通過oplog獲取數(shù)據(jù)(mongodb),需要的朋友可以參考下2023-09-09python3.4實(shí)現(xiàn)郵件發(fā)送功能
這篇文章主要為大家詳細(xì)介紹了python3.4實(shí)現(xiàn)郵件發(fā)送功能,含帶中文附件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05Python入門教程(三十八)Python的NumPy庫簡介
這篇文章主要介紹了Python入門教程(三十八)Python的NumPy庫簡介,NumPy 是用于處理數(shù)組的 python 庫,它還擁有在線性代數(shù)、傅立葉變換和矩陣領(lǐng)域中工作的函數(shù),需要的朋友可以參考下2023-05-05詳解Python的整數(shù)是如何實(shí)現(xiàn)的
本文我們來聊一聊Python的整數(shù),我們知道Python的整數(shù)是不會(huì)溢出的,換句話說,它可以計(jì)算無窮大的數(shù),只要你的內(nèi)存足夠,它就能計(jì)算。但問題是,Python底層又是C實(shí)現(xiàn)的,那么它是怎么做到整數(shù)不溢出的呢?本文就來詳細(xì)說說2022-11-11