实战1:两个文件两列内容匹配
因工作中经常遇到在两个文件中匹配相同列的内容,用python3实现了。 参考链接 两个源文件格式在github
#!/bin/bash
#此脚本是实现玉米V4版本基因的功能注释
#gene_function.txt是对应的注释库文件
#out.csv是需要添加注释的文件
#输出文件为
#@author:chaimol@163.com
import pandas as pd
df1=pd.read_csv('gene_function.csv',encoding='utf-8')
df2=pd.read_csv('out.csv',encoding='utf-8')
#匹配相同内容的行,匹配到之后返回匹配到的行,未匹配到则不返回
index=df1['geneid'].isin(df2['geneid'])
outfile=df1[index]
outfile.to_csv('outfile.csv',index=False,encoding='utf-8')
#匹配相同内容的行,匹配到之后添加内容到右侧文件。为匹配到返回的是NA。
outer=pd.merge(df1,df2,how='right')
outer.to_csv('outer_function.csv',index=False,encoding='utf-8')
pandas
这个包在安装时可能会出错,直接使用pip install 安装,具体参照官网。
在读取csv文件时,会经常报错。原因是csv的格式不是utf-8,用记事本打开该csv文件,调整下面的编码格式为utf-8.后缀名仍然是csv就可以了。 pandas这个包在处理大量数据集时非常有优势。可以详细学习用法。