聊聊Python pandas 中loc函數的使用,及跟iloc的區別說明
loc和iloc的意思
首先,loc是location的意思,和iloc中i的意思是指integer,所以它只接受整數作為參數,詳情見下面。
loc和iloc的區別及用法展示
1.區別loc works on labels in the index.iloc works on the positions in the index (so it only takes integers).2.用法展示
首先創建一個dataframe:
1)loc為Selection by Label函數,即為按標簽取數據,標簽是什么,就是上面的’0’~‘4’, ‘A’~‘B’。
例如第一個參數選擇index,第二個參數選擇column,如下圖:
建議寫df.loc[0, :],這樣可以清楚的看出為第0行的所有記錄,同樣如果取第’A’列的所有記錄,可以寫df.loc[:, ‘A’],如下圖:
:表示所有,[]里邊為先行后列。
2)iloc函數為Selection by Position,即按位置選擇數據,即第n行,第n列數據,只接受整型參數
記住,0:2為左閉右開區間,即取0,1,如下圖:
若要取第一列的所有數據,則為df.iloc[:, 0],記住不接受’A’作為參數,如下圖:
補充:只需一個例子幫你搞清并記住python loc和iloc
幫你區分python loc和iloc最基本的概念loc通常用于行標簽和列標簽,iloc通常直接用于行序號和列序號,具體舉個例子幫助大家理解。
創建一個以abcd為索引,四行三列的Dataframe。
df = pd.DataFrame({’number’:[10,20,30,20], ’科目’:[’語文’,’數學’,’英語’,’化學’], ’名稱’:[’小米’,’華為’,’蘋果’,’聯想’]},index=[’a’,’b’,’c’,’d’])print(df)
結果如圖所示 :
先來看loc:
print(df.loc[’a’:’c’])print(df.loc[[’a’,’c’]])print(df.loc[:’c’])
分別輸出a行到c行;a行和c行;a行到c行。
如圖所示:
還可以設置取出某幾行某幾列:
print(df.loc[:’c’,[’number’,’科目’]])
結果如下圖所示:取出a到c行的number和科目列。
如下圖所示:
loc基本用法就這些。實際上iloc用法和loc差不多,但iloc不是直接取已有索引。而是默認索引就是1,2,3,4~~~
同樣的我們用iloc做下上述操作。
print(df.iloc[0:3])print(df.iloc[[0,2]])print(df.iloc[:3])
結果同樣如上圖所示:
用iloc取出a到c行的number和科目列:
print(df.iloc[0:3,[0,1]])
結果如下圖所示:
我相信讀到這里大家應該就理解了它們的用法。最后再提醒大家一下,loc不管行還是列調用的都是Dataframe自身的行標簽和列標簽。
而iloc調用的是行[1,2,3,4~],列[1,2,3,4]。
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。
