更新時間:2022-09-05 來源:黑馬程序員 瀏覽量:
雖然DataFrame操作索引能夠滿足基本數(shù)據(jù)查看請求,但是仍然不夠靈活。為此,Pandas庫中提供了操作索引的方法來訪問數(shù)據(jù),具體包括:
?loc:基于標(biāo)簽索引(索引名稱,如a、b等),用于按標(biāo)簽選取數(shù)據(jù)。當(dāng)執(zhí)行切片操作時,既包含起始索引,也包含結(jié)束索引。
?loc:基于位置索引(整數(shù)索引,從0到length-1),用于按位置選取數(shù)據(jù)。當(dāng)執(zhí)行切片操作時,只包含起始索引,不包含結(jié)束索引。
iloc方法主要使用整數(shù)來索引數(shù)據(jù),而不能使用字符標(biāo)簽來索引數(shù)據(jù)。而loc方法恰恰相反,它只能使用字符標(biāo)簽來索引數(shù)據(jù),而不能使用整數(shù)來索引數(shù)據(jù)。不過,當(dāng)DataFrame對象的行索引或列索引使用的是整數(shù)時,則其就可以使用整數(shù)來索引。
假設(shè),現(xiàn)在有一個DataFrame對象,具體代碼如下。
In [39]: arr=np.arrange(16) .reshape(4, 4) dataframe_obj=pd.DataFrame(arr, columns=['a', 'b', 'c', 'd']) dataframe_obj Out[39]: a b c d 0 0 1 2 3 1 4 5 6 7 2 8 9 10 11 3 12 13 14 15
接下來,我們通過一段示例程序來演示如何使用上述方法來獲取DataFrame中多列的數(shù)據(jù),具體代碼如下。
In [40]: dataframe_obj.loc[:, ["c", "a"]] In [41]: dataframe_obj.iloc[:, [2,0]]
它們兩個輸出的結(jié)果一樣,具體如下:
c a 0 2 0 1 6 4 2 10 8 3 14 12
還可以通過loc方法和iloc方法使用花式索引來訪問數(shù)據(jù),具體代碼如下。
In [43]: dataframe_obj.loc[1:2, ['b', 'c']] In [44]: dataframe_obj.iloc[1:3, [1, 2]]
它們兩個輸出的結(jié)果也是一樣的,具體如下:
b c 1 5 6 2 9 10