У меня есть namedtuples определена следующим образом:Вложенный словаря namedtuples для панды dataframe
In[37]: from collections import namedtuple
Point = namedtuple('Point', 'x y')
вложенный словарь имеет следующий формат:
In[38]: d
Out[38]:
{1: {None: {1: Point(x=1.0, y=5.0), 2: Point(x=4.0, y=8.0)}},
2: {None: {1: Point(x=45324.0, y=24338.0), 2: Point(x=45.0, y=38.0)}}}
Я пытаюсь создать панда dataframe из словаря d без необходимости делать для циклов.
мне удалось в создании dataframe из подмножества словаря, делая это:
In[40]: df=pd.DataFrame(d[1][None].values())
In[41]: df
Out[41]:
x y
0 1 5
1 4 8
Но я хочу, чтобы иметь возможность создать dataframe из всего словаря.
Я хочу dataframe для вывода следующего (я использую несколько индекса обозначение):
In[42]: df
Out[42]:
Subcase Step ID x y
1 None 1 1.0 5.0
2 4.0 8.0
2 None 1 45324.0 24338.0
2 45.0 38.0
Метод from_dict из DataFrame, поддерживает только до двух уровней вложенности, так что я не был в состоянии использовать Это. Я также рассматриваю возможность изменения структуры словаря d для достижения моей цели. Кроме того, возможно, это не должен быть словарь.
спасибо.
Вы говорите, что это не обязательно должен быть dict - какой источник данных в dict? Или вы имели в виду преобразование dict в промежуточную структуру, прежде чем превращать его в dataframe? – Jeff
Источник данных из двоичного файла. Он преобразуется в dict для удобства доступа и быстрого запроса. В идеале это будет диктовать. То, что я пытался сказать, это то, что я могу изменить код, который изменяет двоичный файл на dict, и использовать что-то более дружелюбное к pandas. Трансформирование дикта представляется неэффективным. – snowleopard