聊聊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)建一個dataframe:
1)loc為Selection by Label函數(shù),即為按標(biāo)簽取數(shù)據(jù),標(biāo)簽是什么,就是上面的’0’~‘4’, ‘A’~‘B’。
例如第一個參數(shù)選擇index,第二個參數(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ǔ)充:只需一個例子幫你搞清并記住python loc和iloc
幫你區(qū)分python loc和iloc最基本的概念loc通常用于行標(biāo)簽和列標(biāo)簽,iloc通常直接用于行序號和列序號,具體舉個例子幫助大家理解。
創(chuàng)建一個以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基本用法就這些。實際上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]。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。如有錯誤或未考慮完全的地方,望不吝賜教。
