除了最基本的篩選外,例:data[‘A’]
還有loc、iloc、ix(已不推薦使用)
我對它們的區分,說loc(location),在教室裡找不認識的同學的位置一樣的,找人肯定要知道名字或者身高形體(條件),是以loc就隻能用條件或者行列的名字來進行篩選;
再說iloc(indx location),index是什麼,我把它當作是索引位置,第幾行第幾列的意思,是以iloc是用第幾行第幾列這樣的數字來篩選的。
或許我形容的不夠好,我下面的示範自己做一遍,會有深刻的印象。
下面就對loc和iloc各種操作示範一下,還有什麼缺少的操作可以提醒我補充,大家一起學習進步。
首先建立一個資料data用于兩個函數的操作。
import pandas as pd
import numpy as np
data = pd.DataFrame(np.random.randint(100,size=(10,10)),\
columns=['a','b','c','d','e','f','g','h','i','j'],\
index=['A','B','C','D','E','F','G','H','I','J'])
data

以下方法中都可以采用切片的,十分友善,我示範的不多,還有待大家自行舉一反三練習呀。
小聲哔哔,有人問切片是啥,emm,這是還沒入門啊,先學完切片再來看。
一、loc
(一)讀取某行
# 讀取第二行的所有列
data.loc['B',:] # 等價于data.loc['B']
(二)讀取某列
# 讀取第一列的所有行
data.loc[:,'a']
(三)讀取某行的同時讀取某列
# 讀取第一列第一行
data.loc['A','a']
loc支援切片這種騷操作.
# 讀取第一行到第四行的第三列到第五列
data.loc['A':'D','c':'e']
(四)按照條件讀取
不過這裡還可以對列進行選擇,切片也是行的
另外、錯誤示範
有些人就是不信邪,用loc執行直接找第幾行的操作,不行的,loc隻能名字和條件,你要是想找第幾行要用iloc。
二、iloc
以下盡量和loc讀取一樣的行或列,友善大家比較。
(一)讀取某行
# 讀取第一行的所有列
data.iloc[1] # 結果等價于data.loc['B',:] == data.iloc[1,:]
(二)讀取某列
# 讀取第一列的所有行
data.iloc[:,1]
(三)讀取某行的同時讀取某列
# 讀取第一行第一列,python的位置都是從0開始的,第一行的表示就是0
data.iloc[0,0] # 結果等價于 data.loc['A','a']
同樣的,無論是loc還是iloc它裡面的參數都是可以進行切片操作的。
注意,這裡的數字切片和上面的索引切片不一樣,它的區間是左閉右開的,右邊最後一個取不到
# 讀取第一行到第四行的第二列到第五列
data.iloc[0:4,2:5] # 結果等價于data.loc['A':'D','c':'e']