Я пытаюсь создать итератор, который создает один DataFrame за раз, который включает каждый элемент списка списков упорядоченных словарей.
Первая часть кода, я разрабатываю функцию для выравнивания Упорядочил иерархические словари, которые у меня есть в списке «list_2». Каждый «list_2» является списком внутри списка «list_1».
Во второй части я включаю каждый плоский словарь из «list_2» в виде строки в фрейм данных, а затем, когда первая группа сглаживает словари по окончании я присвоил результат "first_df".
Третья часть повторяет процесс второй части, назначая вторую группу уплощенных словарей в "list_2" для "second_df ·.
My Цель состоит в том, чтобы создать эффективный и автоматизированный c способ назначения n групп выровненных словарей для n фреймов данных.
Заранее благодарим за помощь.
from collections import OrderedDict
import pandas as pd
def flatten_dict(d):
def items():
for key, value in d.items():
if isinstance(value, dict):
for subkey, subvalue in flatten_dict(value).items():
yield key + "." + subkey, subvalue
else:
yield key, value
return OrderedDict(items())
df2=pd.DataFrame()
m=0
z=1
w=1
for list_2 in list_1[m:z]:
for elem in list_2:
dict_flattened = flatten_dict(elem)
df = pd.DataFrame.from_dict(dict_flattened,'index').transpose()
df2 = pd.concat([df, df2],ignore_index = True)
print(df2.shape)
first_df = df2
m+=w
z+=w
df2=pd.DataFrame()
for list_2 in list_1[m:z]:
for elem in list_2:
dict_flattened = flatten_dict(elem)
df = pd.DataFrame.from_dict(dict_flattened,'index').transpose()
df2 = pd.concat([df, df2],ignore_index = True)
print(df2.shape)
second_df = df2