我需要帮助来解决此问题。如果有人想通过python3使用panda DataFrame创建脚本:
我有两个CSV数据集文件太长而无法放入panda DataFrame显示中。它们具有以下结构:
F1:
gene disease
0 g1 d1
1 g1 d2
2 g1 d3
3 g2 d2
4 g2 d3
5 g2 d4
6 g3 d2
7 g3 d4
8 g4 d1
9 g4 d3
F2:
gene phenotype
0 g1 ph1
1 g1 ph2
2 g2 ph2
3 g2 ph3
4 g2 ph4
5 g3 ph4
6 g4 ph1
7 g4 ph3
8 g5 ph4
9 g6 ph2
g =基因名(strig,interger,Float),d =病名(string)ph =表型
主要目标是将F2中的所有基因与F1中的基因进行比较,如果它们相等,则附加基因名称和与疾病相关的表型,以获得包含所有相关疾病的输出文件F3按基因表型。
这是预期的输出:
gene disease phenotype
g1 d1 ph2
g1 d2 ph2
g2 d2 ph1
g2 d3 ph2
ect.
有人可以帮助我创建脚本吗?任何帮助将非常感激。谢谢!
答案 0 :(得分:0)
基因与表型之间存在一对多的关系,而基因与疾病之间存在一对多的关系。如果您加入基因,将会有很多很多。请参阅示例输出。这是您要找的吗?
data = [
["g1", "d1"],
["g1", "d2"],
["g1", "d3"],
["g2", "d2"],
["g2", "d3"]
]
f1 = pd.DataFrame(data, columns={"gene", "disease"})
data = [
["g1", "ph1"],
["g1", "ph2"],
["g2", "ph2"],
["g2", "ph3"]
]
f2 = pd.DataFrame(data, columns={"gene", "phenotype"})
f1.merge(f2)
idx gene disease phenotype
0 g1 d1 ph1
1 g1 d1 ph2
2 g1 d2 ph1
3 g1 d2 ph2
4 g1 d3 ph1
5 g1 d3 ph2
6 g2 d2 ph2
7 g2 d2 ph3
8 g2 d3 ph2
9 g2 d3 ph3