1、df.loc: 语法格式是df.loc[<行表达式>, <列表达式>],如果列不传将返回所有的行,loc操作通过索引和列的条件筛选出数据。
2、df.iloc: 语法格式是df.iloc[<行表达式>, <列表达式>],格式可以使用数字索引(行和列的0~n索引)进行筛选数据,意味着iloc[]的表达式只支持数据切片的形式
- import pandas as pd
- data_path = './neo4j_all_metric.csv'
- df = pd.read_csv(data_path, nrows=100)
1、单个索引,如果是字符串,需要加上引号
- # 选取索引为0的行
- df.loc[0]
- # 选取索引为10的行
- df.loc[10]
2、以列表组成的索引,例如[1, 3 , 5, 7, 9],显示出该列表对应行数的所有列的数据
- # 此时索引是一个列表, 可以选择第 1,3,5,7,9行
- df.loc[[1, 3, 5, 7, 9]]
3、带标签的切片,如Python的列表操作,包括起始已停止。
- # 显示的是5-10行的所有列的内容
- df.loc[5:10]
4、如果行表达式与类表达式都存在。如df.loc[n:m, cn:cm]
- # 5-10行,并且是obj_type-from_id,所有的数据
- df.loc[5:10, 'obj_type':'from_id']
- # 5-10行,并且是obj_type与from_id,所有的数据
- df.loc[5:10, ['obj_type','from_id']]
- # 5与10行,并且是obj_type与from_id,所有的数据
- df.loc[[5,10], ['obj_type','from_id']]
1、切片的方式
- # 前三行
- df.iloc[:3]
- # 2-20,步长是2,2可以取到,20取不到
- df.iloc[2:20:2]
- # 表达式含义,前三行的, 1,2列==前两列
- df.iloc[:3, [0, 1]]