您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“Python中.iloc與.loc的區別、聯系和用法是什么”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Python中.iloc與.loc的區別、聯系和用法是什么”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
(1)操作對象相同:loc和iloc都是對DataFrame類型進行操作;
(2)完成目的相同:二者都是用于選取DataFrame中對應行或列中的元素。
loc和iloc索引的行列標簽類型不同。
iloc使用順序數字來索引數據,而不能使用字符型的標簽來索引數據;注意:這里的順序數字是指從0開始計數!
loc使用實際設置的索引來索引數據。但行列名為數字時,loc也可以索引數字,但這里的數字不一定從0開始編號,是對應具體行列名的數字!
下面用代碼來講解兩者的用法。
import pandas as pd import numpy as np a = np.arange(12).reshape(3,4) #將a轉化為DataFrame類型 df = pd.DataFrame(a) #展示df df
由于未給df的行列命名,默認從0開始編號,所以這個時候使用loc和iloc結果是一樣的。
索引為一個數,默認輸出行 print(df.loc[0])#輸出第0行元素 print(df.iloc[0])#輸出第0行元素
兩者輸出結果都為:
0 0
1 1
2 2
3 3
Name: 0, dtype: int32
輸出結果為df第0行元素,結果中第一列表示列名,第二列表示具體的值。如果只需要輸出某一列,輸入df.loc[:,0]表示輸出第0列。
如果需要輸出第0到2列的數據。
#方式1 df.loc[:,0:2]#可把loc理解為遍歷字符串類型,0:2則表示標簽為0,1,2三列 #方式2 df.iloc[:,0:3]#iloc遍歷的數數字,python中0:3對應0,1,和2
輸出結果均為:
#把行標簽換成其他數字編號 df.index=[2,5,7] df.loc[2]
此時df變為:
輸出結果為:
0 0
1 1
2 2
3 3
Name: 2, dtype: int32
輸出結果對應的是列標簽為“2”所在的行。
我們繼續用df.iloc[2]輸出結果:
0 8
1 9
2 10
3 11
Name: 7, dtype: int32
可見輸出的是第2行的數據。
在這里我們能大概對loc和iloc的用法有了一定的了解。
#把行標簽轉化為非數字類型 df.index=['a','b','c'] #輸出第a、b行,第0到2列的數據 #方式1 df.loc[['a','b'],0:2]#可把loc理解為遍歷字符串類型,0:2則表示標簽為0,1,2三列 #方式2 df.iloc[0:2,0:3]#iloc遍歷的是數字,0:2表示的是0和1,0:3表示0,1,2。
兩者輸出結果均為:
一般情況下,表的行為從0編號的數字類型,列為具體的字符串類型。行的數字容易確定,列的列名容易確定。
#將行換成0 1 2編號 df.index=[0,1,2] #列標簽換成A B C D df.columns=['A','B','C','D'] df.iloc[1]['A']#實現輸出第1行第A列的數據
輸出結果為4。
如果要輸出第1行,第AB列,使用df.iloc[1][['A','B']],這里一定要注意'A','B'是作為一個列表輸入的,右側一共有兩個中括號。
輸出結果:
A 4
B 5
Name: 1, dtype: int32
df.iloc[1][['A','B']]等價于df.iloc[1,0:2],但是很多情況下我們不知道具體列名對應的數字,所以采用第一種方法可以提高編程效率。
讀到這里,這篇“Python中.iloc與.loc的區別、聯系和用法是什么”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。