以一个文件中的某一列作为标准列,从另一个文件中将标准列对应的内容提取出来
文件1:GENE ID 文件2:GENE ID S1 S2 S3 S4
gene1 01 gene5 05 a1 a2 a3 a4
gene2 02 gene1 01 b1 b2 b3 b4
将文件1中基因列从文件2中对应的内容提取出来:
import pandas as pd #使用pandas包
genelist = list(pd.read_csv("genetype6list.csv")["GENE"]) #读入genetype6list.csv文件(即文件1),选择GENE的列以列表形式写入到genelist中
target = pd.read_csv("met_expfold_11.csv",index_col=0) #读入met_expfold_11.csv文件(即文件2),index_col=0是gene列的索引值(即第一列),读入到target中
target.loc[genelist].to_csv("result.csv") #将geelist中的基因所在的行从target中提取出来,并写入到文件名为result.csv的文件中。
python的快捷方式Ctrl+Alt+0
若文件2:micRNA UP/DOWN GENE ID S1 S2 S3 S4
micRNA1 up gene5 05 a1 a2 a3 a4
micRNA2 down gene1 01 b1 b2 b3 b4
将存在于文件1中的基因在文件2中对应的内容提取出来,且不改变各部分的位置。代码如下:
import pandas as pd
genelist = list(pd.read_csv("genetype6list.csv")["GENE"])
target = pd.read_csv("met_expfold_11.csv") #如果使用index=2,是将文件2的gene这一列作为索引值,输出结果gene列会从第3列变到第一列,所以为了不改变输出内容,这里不定义索引列;
target.index=target['gene'] #单独定义target文件的索引列
target.loc[genelist].to_csv("result.csv",index=False) #输出文件内容但不输出索引列。
网友评论