【发布时间】:2021-07-22 21:41:19
【问题描述】:
我查看了旧问题,他们解决了类似的问题,但不是我想要解决的问题。作为快速背景,我正在摄取一个有时返回略有不同的对象的 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}]
【问题讨论】:
-
检查
pd.DataFrame([r1, r2, r3, r4, r5]) -
谢谢,唯一的问题是有时我只会得到一个没有包含所有列的响应。我正在使用该 DataFrame 将其写入 SQL。例如,如果我只写 r2,我怎么还能“强制”它拥有所有 C1、C2、C3 和 C4?
-
df = df.append(r2, ignore_index=True). -
这能回答你的问题吗? append dictionary to data frame
-
您可以将列显式传递给
pd.DataFrame([r2], columns=['C1','C2','C3','C4']),也可以将appendr2传递给使用所需列创建的现有空数据框。
标签: python pandas dictionary