编辑以下内容
我有一本大字典,里面有很多关于集群及其基因的信息。我正在尝试访问有关“cdhitclusters”的部分数据。这段代码工作得很好,完全符合我的要求(计算每个簇的rep_基因数)。我只是不知道如何为字典中的所有集群编写for循环
clus1 = (gene_clusters.get("cluster-1"))
cdhit1 = (clus1.get("cdhitclusters"))
rep1 = pd.DataFrame(cdhit1)
print(len(rep1.rep_gene))
这是字典的一部分:
{
'cluster-1': {
'BGCid': '-',
'cdhitclusters': [
{
'genes': { 'AT1G24070': 100.0 },
'rep_gene': 'AT1G24070'
},
{
'genes': { 'AT1G24100': 100.0 },
'rep_gene': 'AT1G24100'
},
{
'genes': {
'AT1G24040': 100.0,
'AT1G2404_1': 100.0,
'AT1G2404_2': 100.0
},
'rep_gene': 'AT1G24040'
},
{
'genes': {
'AT1G24020': 100.0,
'AT1G2402_1': 100.0
},
'rep_gene': 'AT1G24020'
},
{
'genes': { 'AT1G24010': 100.0 },
'rep_gene': 'AT1G24010'
},
{
'genes': { 'AT1G24000': 100.0 },
'rep_gene': 'AT1G24000'
}
]
...
有45个集群,我如何编写一个循环来完成上面的代码,但对于所有集群
已更新
谢谢你的回答,他们成功了。我希望它输出到一个数据帧,我可以添加到一个更大的数据帧。这是我正在使用的代码,但它只计算循环中第一个集群的CDhit。我做错了什么
for clus in gene_clusters.values():
cdhit = (clus.get("cdhitclusters"))
rep = pd.DataFrame(cdhit)
replen = rep.iloc[:,0]
replen1 = len(rep.rep_gene)
list = [replen1]
replen2 = pd.DataFrame(list, columns=['CDhits'])
replen2 = replen2.CDhits
您似乎没有使用该键,因此可以在字典的
values()
上进行迭代:我认为在这种情况下,一个简单的方法是:
我试过使用您提供的dict部分,gene_clusters.keys()生成了您想要的集群列表
相关问题 更多 >
编程相关推荐