如何将 Python 字典附加到 Pandas DataFrame,将键与列名匹配

时间:2021-04-29 13:50:46

标签: python pandas dictionary

我浏览了旧问题,它们解决了类似的问题,但不是我想弄清楚的问题。作为快速背景,我正在摄取一个有时会返回稍微不同的对象的 API,但我想将它们全部附加到同一个表中。

如果该值不在其中一个字典中,我希望在数据框中将其留空

df = pd.DataFrame(columns=['C1','C2','C3','C4'])

r1 = {'C1':20,'C2':15,'C3':10,'C4':53}
r2 = {'C1':47,'C3':26,'C4':17}
r3 = {'C2':31,'C3':64,'C4':29}
r4 = {'C1':64,'C2':17}
r5 = {'C1':45,'C2':24,'C3':71,'C4':63}

如何循环 r1-5 并将它们附加到 DataFrame 中?

 C1    C2    C3    C4
 20    15    10    53
 47   None   26    17
None   31    64    26
 64    17   None  None
 45    24    71    63

提前致谢!

编辑:要添加一些其他信息,这是我迄今为止尝试过的内容。

我已经将每个字典变成了一个字典列表,然后尝试遍历每个键:值对并使用 Loc 函数中的键

举个例子:

r1 = [{'C1':20},{'C2':15},{'C3':10},{'C4':53}]

1 个答案:

答案 0 :(得分:0)

您可以使用 loc 或 append 来执行此操作。

如果你想一一附加每一行,那么你可以这样做

df.loc[len(df)] = r1
df.loc[len(df)] = r2
df.loc[len(df)] = r3
df.loc[len(df)] = r4
df.loc[len(df)] = r5

或者如果您想将所有行附加在一起,这样会更有效率,您可以这样做:

rows = [r1,r2,r3,r4,r5]
df = df.append(rows)

两者都给你以下输出

enter image description here