pandas DataFrame數據篩選和切片


DataFrame數據篩選——loc,iloc,ix,at,iat

條件篩選

單條件篩選

選取col1列的取值大於n的記錄: data[data['col1']>n]
篩選col1列的取值大於n的記錄,但是顯示col2,col3列的值: data[['col2','col3']][data['col1']>n]
選擇特定行:使用isin函數根據特定值篩選記錄。篩選col1值等於list中元素的記錄: data[data.col1.isin(list)]
 
 

多條件篩選

可以使用&(並)與| (或)操作符或者特定的函數實現多條件篩選
使用&篩選col1列的取值大於n,col2列的取值大於m的記錄:data[(data['col1'] > n) & (data['col2'] > m)]
使用numpy的logical_and函數完成同樣的功能:data[np.logical_and(data['col1']> n,data['col2']>m)]
 
 

索引篩選

切片操作

使用切片操作選擇特定的行: data[n:m]
傳入列名選擇特定的列: data[['col1','col2']]
 

loc函數

當每列已有column name時,用 data ['col1'] 就能選取出一整列數據。如果你知道column names 和index,可以選擇 .loc同時進行行列選擇: data.loc[index,'colum_names']
 

iloc函數

使用方法同loc函數,但是不再輸入列名,而是輸入列的index: data.iloc[row_index,col_index]

 

ix函數

ix的功能更加強大,參數既可以是索引,也可以是名稱,相當於,loc和iloc的合體。需要注意的是在使用的時候需要統一,在行選擇時同時出現索引和名稱, 同樣在同行選擇時同時出現索引和名稱: data.ix[n:m,['col1','col2']]
但是在最新的版本中,ix函數不建議使用
 
 

at函數

根據指定行index及列label,快速定位DataFrame的元素,選擇列時僅支持列名:data.at[row_index,'column_names']
 
 

iat函數

與at的功能相同,只使用索引參數:data.iat[row_index,column_index]
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM