標籤:切片 統一 函數實現 dex 實現 das lis 快速 list
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]
pandas DataFrame資料篩選和切片