我是python的新手,已经尝试了一个星期了。
我有一个2行,每行2000列的数据集,数据采用字典格式,我用df.DataFrame进行了转换(不知道这是否有帮助)
这是一个例子
gene1 gene2 gene3 etc
location [1,2] [3,4] [5,6]
enhancer ATCG GGGG CATA
我想将基因1的增强子与其余基因的增强子一一比较,以告诉我它们之间有多少差异。我知道我无法为此创建新列,因为我认为最好的解决方案是将新信息保存到新的数据框中
示例输出
gene1 gene 2 gene3
difference 0 3 4
我想从不同的角度来解决这个问题,我已经尝试过使用嵌套循环来实现,但是无法弄清楚。
谢谢
答案 0 :(得分:0)
这绝对不是最好的方法,但是我尝试以下方法,因为这对我来说是最直接的方法。
df = pd.DataFrame({"gene1":[[1,2],"ATCG"],
"gene2":[[3,4],"GGGG"],
"gene3":[[5,6],"CATA"]},index=["location","enhancer"])
target_gene = df.loc["enhancer","gene1"]
df.loc["difference",:] = list(map(lambda x:sum([c1!=c2 for (c1,c2) in zip(x,target_gene)]),
df.loc["enhancer",:]))
df