DataFrame行列操作方法:
at[row_value,column_value] 基于行列标签值查找单个值
iat[row_index,column_index] 基于行列位置序号查找单个值
loc[row_values,column_values] 基于索引和字段标签(即实际的索引值或字段名称)进行数据的切片或筛选,也支持布尔值方式筛选!
iloc[row_indexs,column_indexs] 基于索引和字段的序号位置(即索引从上到下,字段从左到右排序的序号)进行数据的切片和筛选,支持布尔值方式筛选
一、DataFrame.iloc[]
位置序号切片
1、df.iloc[1:3, 0:3]
2、df.iloc[[1,3],[0,3]]
布尔值方式
1、df.iloc[:,[True,False,True,False]]
2、df.iloc[lambda x:x.index % 2 == 0]
二、DataFrame.loc[]
标签值切片
1、 df.loc[r1:r2,'c1':'c2']
2、df.loc[[r1,r2],['c1','c2']] 或 df.loc[(r1,r2),('c1','c2')]
布尔值-条件查找:
1、选取等于某个值的行 == :df.loc[df['column_name'] == seek_value]
2、选取不等于某个值的行 !=:df.loc[df['column_name'] != seek_value]
3、选取包含某些值的行 isin :df.loc[df['column_name'].isin(seek_values)]
4、选取不包含某些值的行 ~(非) :df.loc[~df['column_name'].isin(seek_values)]
5、多种条件的选取行 &(与)、|^(或) :df.loc[(df['column'] == seek_value) & df['other_column'].isin(seek_values)]
6、df.loc[lambda df: df['col'] == 8 ]