我正在尝试构建一个迭代器,该迭代器一次构建一个DataFrame,其中包括有序词典列表的每个元素。
代码的第一部分,我开发了一个函数来展平列表“ list_2”中的层次结构有序字典。每个“列表_2”是列表“列表_1”内的一个列表。
在第二部分中,我将“ list_2”中的每个拼合字典作为一行包含在数据框中,然后,当第一组拼合字典结束时,我将结果分配给“ first_df”。
第三部分重复第二部分的过程,将“ list_2”中的第二组扁平化字典分配给“ second_df·”。
我的目标是实现一种高效且自动的方式,将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