我看过一些老问题,它们解决了类似的问题,但不是我想要解决的问题。作为快速背景,我正在摄取一个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}]发布于 2021-04-30 20:12:23
您可以使用loc或append both来完成此操作。
如果您想逐一追加每行,则可以这样做
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)两者都会给出以下输出

https://stackoverflow.com/questions/67318759
复制相似问题