我在嘗試從 python 中的資料框創建嵌套字典時遇到了一些困難,非常感謝您的幫助。這就是資料的樣子。
| 標簽 | ID | 貓 | |
|---|---|---|---|
| 0 | PA14_00030 | 去:0005524 | F |
| 1 | PA14_00030 | 去:0006281 | 磷 |
| 2 | PA14_00050 | 去:0003677 | F |
| 3 | PA14_00050 | 去:0003918 | F |
| 4 | PA14_00050 | 去:0005524 | F |
| 5 | PA14_00050 | 去:0006265 | 磷 |
| 6 | PA14_00060 | 去:0016746 | F |
| 7 | PA14_00070 | 去:0005975 | C |
| 8 | PA14_00080 | 去:0009055 | C |
我想創建一個看起來像這樣的嵌套字典:
{'C':{'PA14_00080':{'GO:0009055'},'PA14_00070':{'GO:0005975'}},
'F':{'PA14_0003': {'GO:0005524'}, 'PA14_00050': {'GO:0003677', 'GO:0003918','GO:0005524'}},
'P':{PA14_00050:{GO:0006265}, PA14_00030:{GO:0006281}}}
感謝您的幫助。
uj5u.com熱心網友回復:
如果我理解正確,你可以這樣做:
out = {
k: {
row["tag"]: set(g.loc[g["tag"] == row["tag"], "id"].to_list())
for _, row in g.iterrows()
}
for k, g in df.groupby("cat")
}
print(out)
印刷:
{
"C": {"PA14_00070": {"GO:0005975"}, "PA14_00080": {"GO:0009055"}},
"F": {
"PA14_00030": {"GO:0005524"},
"PA14_00050": {"GO:0003918", "GO:0005524", "GO:0003677"},
"PA14_00060": {"GO:0016746"},
},
"P": {"PA14_00030": {"GO:0006281"}, "PA14_00050": {"GO:0006265"}},
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/479601.html
下一篇:Python中不同長度的字典比較
