У меня есть вложенный словарь, который имеет 5 уровней masterdict = {a : {b: {c: {d : { e: }}}}}
, и я пытаюсь создать плоский фрейм данных.Как создать кадр данных из глубоко вложенного словаря?
Когда я запускаю следующий код:
masterDF = pd.DataFrame()
for a in masterdict:
for b in masterdict[a]:
for c in masterdict[a][b]:
for d in masterdict[a][b][c]:
eDF = pd.DataFrame(masterdict[a][b][c][d])
eDF['level4'] = str(d)
eDF['level3'] = str(c)
eDF['level2'] = str(b)
eDF['level1'] = str(a)
masterDF = masterDF.append(eDF)
Я получаю следующее сообщение об ошибке:
---------------------------------------------------------------------------
PandasError Traceback (most recent call last)
<ipython-input-13-cc9930935c64> in <module>()
5 for c in masterdict[a][b]:
6 for d in masterdict[a][b][c]:
----> 7 eDF = pd.DataFrame(masterdict[a][b][c][d])
8 eDF['level4'] = str(d)
9 eDF['level3'] = str(c)
C:\Anaconda\lib\site-packages\pandas\core\frame.pyc in __init__(self, data, index, columns, dtype, copy)
275 copy=False)
276 else:
--> 277 raise PandasError('DataFrame constructor not properly called!')
278
279 NDFrame.__init__(self, mgr, fastpath=True)
PandasError: DataFrame constructor not properly called!
Я не уверен, если это правильный код для выравнивания вложенную словаря, но если это , не могли бы вы предложить, что я могу делать неправильно?
спасибо.
Можете ли вы предоставить нам макет? Я подозреваю, что это json-файл? – biobirdman