我要添加使大熊猫据帧有两列:READ_ID和得分追加到大熊猫数据帧
我使用下面的代码:
reads_array = []
for x in Bio.SeqIO.parse("inp.fasta","fasta"):
reads_array.append(x)
columns = ["read_id","score"]
df = pd.DataFrame(columns = columns)
df = df.fillna(0)
for x in reads_array:
alignments=pairwise2.align.globalms("ACTTGAT",str(x.seq),2,-1,-.5,-.1)
sorted_alignments = sorted(alignments, key=operator.itemgetter(2),reverse = True)
read_id = x.name
score = sorted_alignments[0][2]
df['read_id'] = read_id
df['score'] = score
但是,这是行不通的。你能提出一种生成数据帧的方法吗?df
那么你所做的就是用你的循环中正在发生的任何事情覆盖该列,你想在一个前面分配每列的全部内容,所以试着构建每一列然后在末尾分配 – EdChum
看起来'reads_array'是一个填充了元组对的列表。当你运行你的第二个循环时,我不明白'x.seq'和'x.name'。这不应该引起错误吗?另外,请提供一些示例数据(例如5行)。 – Alexander
> read_id_1 ATTTTGG> read_id_2 TTGGATT等以fasta格式。 x.name是read_id_1,read_id_2等,x.seq是后缀 – Ssank