【发布时间】:2016-02-04 00:29:48
【问题描述】:
我有两个文件:
- 1 个文件是包含序列名称及其序列的 fasta 文件。
- 另一个文件是一个excel文件,它有一个'Hcolumn'的序列名称和一个空列,标题为'Hsequence'和一个'Kcolumn'的序列名称,它旁边有一个空列,带有标头“Ksequence”。
我想循环遍历这两个文件,如果fasta文件中的序列名称也在'Hcolumn'或'Kcolumn'中,则将该序列添加到excel文件中的相应序列列中,即“Hsequence”或“Ksequence”列。 我的想法是获取 vh 值的位置,并将其 seq 值添加到其右侧(下一行)的单元格中。
更新示例
fasta 文件(忽略 > 符号):
headerA
AAAGGCCT
headerB
ATCCTTTG
headerC
GGGGTCCCAAT
excel表格
Hcolumn Hsequence Kcolumn Ksequence
headerA headerB
headerC headerE
headerD headerF
期望的结果:
Hcolumn Hsequence Kcolumn Ksequence
headerA AAAGGCCT headerB ATCCTTTG
headerC GGGGTCCCAAT headerE
headerD headerF
我的新代码:(我下面的代码只处理一列,我还不知道它是在列A还是在B列)
for line in f:
seq = f.readline()
for vh in data["Hcolumn"]:
vh = vh.rstrip()
if (title in vh):
#print(">"+title, seq)
data["HSequence"]=data["Hcolumn"].apply(lambda vh: seq)
else:
data["HSequence"]=data["Hcolumn"].apply(lambda vh: '')
break
return data.to_csv('Fullseqfile.txt', sep='\t')
序列列返回null,有人可以帮忙吗 谢谢
【问题讨论】:
-
什么是数据,.apply() 有什么作用?
-
@jcfollower 数据是 excel 表。使用 .appy() 我想说文件中的标题是否在 Hcolumn 中,然后将文件中的下一行添加到 Hsequence 列
-
.apply(lambda vh: seq)让我很困惑。我的理解是 lambda 应该看起来像这样......lambda x: 2*x,这意味着“取 x 并返回它的双精度数”。无论输入是什么,看起来您的 lambda 表达式分别返回seq和''。 -
@jcfollower 那么我应该如何编写它以便当“Hcolumn”包含来自 fasta 文件的标题时程序将 seq 提供给“Hsequence”列?谢谢!
-
你用什么库来做excel。文件顶部是否有
import声明?
标签: python excel loops pandas fasta