【发布时间】:2018-08-09 16:45:12
【问题描述】:
Dict = {'Things' : {'Car':'Lambo', 'Home':'NatureVilla', 'Gadgets':{'Laptop':{'Programs':{'Data':'Excel', 'Officework': 'Word', 'Coding':{'Python':'PyCharm', 'Java':'Eclipse', 'Others': 'SublimeText'}, 'Wearables': 'SamsungGear', 'Smartphone': 'Nexus'}, 'clothes': 'ArmaaniSuit', 'Bags':'TravelBags'}}}}
d = {(i,j,k,l,m,n): Dict[i][j][k][l][m][n]
for i in Dict.keys()
for j in Dict[i].keys()
for k in Dict[j].keys()
for l in Dict[k].keys()
for m in Dict[l].keys()
for n in Dict[n].keys()
}
mux = pd.MultiIndex.from_tuples(d.keys())
df = pd.DataFrame(list(d.values()), index=mux)
print (df)
我已经做了什么: 我尝试使用熊猫对这个不规则数据进行多索引,但在“汽车”处出现 KeyError。然后我尝试处理异常并尝试通过它,但随后导致语法错误。所以可能是我迷失了方向。如果有任何其他模块或方法,我可以索引这些不规则数据并以某种方式将其放入表中。我有一大堆这样的原始数据。
我想要做什么: 我想在来自 PyQt5(使用 GUI 制作程序)的 QTableView 中使用这些数据进行打印。
条件: 这些数据每小时都会通过 API 更新。
到目前为止我的想法: 也许我可以将所有这些数据附加到 MySQL。但是当这些数据从 API 更新时,只有 Values 会改变,其余的 KEYS 将是相同的。但是那样会需要更多的空间。
参考资料: How to convert a 3-level dictionary to a desired format?
How to build a MultiIndex Pandas DataFrame from a nested dictionary with lists
任何帮助将不胜感激。感谢您阅读问题。
【问题讨论】:
标签: python pandas dictionary dataframe qtableview