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]
