首页 > 解决方案 > 如何从递归字典值中填充数据框?

问题描述

我创建了一个脚本,允许我读取多个 pdf 文件并逐个递归地提取信息。此脚本生成一个包含 pdf 数据的字典。例如:1º PDF 文件的 1º 迭代:

d = {"GGT":["transl","mut"], "ATT":["alt3"], "ATC":["alt5"], "AUC":["alteration"]}

2º 在 2º PDF 文件的第二次迭代中:

d = {"GGT":["transl","mut"], "AUC":["alteration"]}

. . . 这样做直到 200 个 pdf 文件。

最初,我创建了一个数据框,其中包含允许检测该分析的所有基因。

df = pd.DataFrame(data=None, columns=["GGT","AUC","ATC","ATT","UUU","UUT"], dtype=None, copy=False)

期望输出:我想获得的是一个数据帧,其中值的信息以递归方式逐行存储。例如:

在此处输入图像描述

有没有一种简单的方法来实现这一点?或可以帮助我的功能?

标签: pythonpandasdataframe

解决方案


IIUC,您是否正在尝试遍历字典并将它们作为行添加到数据框中?我不确定这如何适用于recursion我想要获得的是一个数据框,其中值的信息以递归方式逐行存储。”

d1 = {"GGT":["transl","mut"], "ATT":["alt3"], "ATC":["alt5"], "AUC":["alteration"]}
d2 = {"GGT":["transl","mut"], "AUC":["alteration"]}
dicts = [d1, d2] #imagine this list contains the 200 dictionaries
df = pd.DataFrame(data=None, columns=["GGT","AUC","ATC","ATT","UUU","UUT"], dtype=None, copy=False)
for d in dicts: #since only 200 rows a simple loop with append
    df = df.append(d, ignore_index=True)
df
Out[1]: 
             GGT           AUC     ATC     ATT  UUU  UUT
0  [transl, mut]  [alteration]  [alt5]  [alt3]  NaN  NaN
1  [transl, mut]  [alteration]     NaN     NaN  NaN  NaN

推荐阅读