我要添加使大熊貓據幀有兩列: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