导语:
在数据分析前,筛选出我们所需要的数据是非常必要的手段,下面简单介绍几种方法:
导入数据
1 #导入pandas和numpy库 2 import pandas as pd 3 import numpy as np 4 from pandas import Series,DataFrame 5 test=pd.read_excel("/Users/yaozhilin/Downloads/exercise.xlsx",sep="t") 6 test.head(5)#显示前五行
•sample:简单随机选取
sample可以理解为随机简单抽样在后续数分析和挖掘中经常用到
1 test.sample(frac=0.01,random_state=1) 2 #frac选取的比例 3 #random_state=1中的数值代表固定数据的标识
•isin:根据字段筛选
单个字段筛选
1 test.loc[test["所属区域"]=="苏州"]
多列单个字段筛选
test.loc[(test["所属区域"]=="苏州")&(test["产品类别"]=="睡袋")].head(5)#需用()括起每个条件
多字段筛选可以用isin,个人感觉isin的用法类似sql中的in
单列多字段
1 test.loc[test["所属区域"].isin(["苏州","昆山"])]
多列多字段
t=test.loc[(test["所属区域"].isin(["苏州","昆山"])&(test["产品类别"].isin(["睡袋","宠物用品"])))] t.sample(n=4)
•query()方法
直接写表达式打方式,注意:它只直接作用于该列表的行或列名。
1 qt=test.query("(所属区域=='苏州'|所属区域=='昆山')&(产品类别=='睡袋'|产品类别=='宠物用品')") 2 qt.sample(n=4)
注:使用query时,所有的表达式都在引号中,且字符串引号与双引号要区分(即可以一种双引号一种单引号),且列名不需用引号(可理解为直接调用了列表则列名不需注释)。
总结:
1、单独进行或者单独进行列过滤用test[columns筛选条件/index筛选条件]
2、同时对行和列筛选test.loc[行筛选条件,列筛选条件],但是为单字段
3、同时对行和列筛选且多字段test.loc[test["columns"].isin([" "," ")]
4、query也可以进行多字段筛选,但主要不能引用列名和格式书写