python数据分析专题 (14):逻辑值索引

python数据分析专题 (14):逻辑值索引
上次内容介绍了pandas数据索引的数字索引和行列名的方法。逻辑值索引也是一种重要的方法。在数据排序和筛选中都要用到逻辑值索引。

逻辑值索引

逻辑值包括True和False。将逻辑值放入行列中,遇到真值True则返回 ,False则跳过。不过逻辑值的数目要与行列数一致。

#逻辑值索引
x=mtcars.iloc[0:3:,0:3]
#筛选出所有行,第1列
x.loc[:,[True,False,False]]
#筛选出所有列,第1行
x.loc[[True,False,True],:]
x.iloc[[True,False,False],:]

利用逻辑值进行索引

#生成逻辑值
logic=np.repeat([True,False],repeats=16)
logic
#利用逻辑值索引
mtcars[logic]
logic=np.tile([True,False],reps=16)
logic
#筛选奇数行
mtcars.loc[logic,:]
np.repeat([1,2,3,4,5],repeats=[1,2,3,4,5])
np.tile(A=[1,2,3,4,5],reps=2)

利用python实现vlookup

vlookup是Excel中非常高效的筛选数据函数。现有两个列表,表1在200gene.csv文件中。

表2中包含一列基因名字,在文件121genes.csv文件中。想需要根据表2中的ID,从表1中提取数据。

python实现代码

gene121=pd.read_csv(‘121genes.csv’,squeeze=True)
gene121
#去除重复项
gene121.unique()
geneid=gene121.unique()
gene200=pd.read_csv(‘200genes.csv’,index_col=0)
gene200.head()
gene200.index
#重新Index,实现vlookup功能
gene93=gene200.reindex(index=geneid)
#去掉缺失值
gene86=gene93.dropna()
#保存最终结果
gene86.to_csv(“gene86.csv”)