gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 04:50:22 25 4
gpt4 key购买 nike

我查看了旧问题,它们解决了类似的问题,但不是我想要解决的问题。作为快速背景,我正在摄取一个 API,该 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}]

最佳答案

您可以使用 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

编辑:根据 starmandeluxe 的评论
由于 .append() 现在已被弃用,您可以只使用 pandas 构造函数创建一个 DataFrame,然后使用 .concat() 将其附加到现有数据库

rows = [r1,r2,r3,r4,r5]
df = pd.concat([df,pd.DataFrame(rows)])

关于python - 如何将 Python 字典附加到 Pandas DataFrame,将键与列名匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67318759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com