python-3.x 在循环中将字典附加到pandas框架中

kd3sttzy  于 2023-11-20  发布在  Python
关注(0)|答案(4)|浏览(94)

我需要在循环中创建一个字典,并将它们附加到一个pandas Dataframe 中,匹配的键值名为dict,列名为data frame。每次迭代中字典的键值对可以不同。一开始就定义了一个空的pandas Dataframe df_podcast,字典中有所有可能的键值。
下面是一个尚未完成的代码的示例

df_podcast=pd.DataFrame(columns=podcast_cols)

podcast_dict={}
for j in range(len(podcast[0])):
    if podcast[0][j].tag=="key":
        podcast_dict[podcast[0][j].text]=podcast[0][j+1].text
### Have to append dict to pandas df ############

字符串
我把podcast_dict附加到了df_podcast。Podcast实际上是一个列表的列表,这里我只考虑列表的第一行

nkhmeac6

nkhmeac61#

您需要:

df  = pd.DataFrame([podcast_dict], columns=podcast_dict.keys())
df_podcast = pd.concat([df_podcast, df], axis =0).reset_index()

字符串

1sbrub3j

1sbrub3j2#

如果你想简单地从一个循环中创建的字典中添加新数据到一个扩展数据框架中:

df = pd.DataFrame()
for i in range(n):
    dict_new = dict(i)
    df = df.append(dict_new, ignore_index=True)
print(df)

字符串

**注意:**只要你创建的字典中的键是相同的,将它追加到现有的嵌套框架中应该不会很麻烦。Source

gcmastyq

gcmastyq3#

IIUC:
你需要做的是用你的循环构建你的字典,然后在你的循环结束时,你可以用你的字典创建一个嵌套框架:

df1  = pd.DataFrame(podcast_dict)

字符串
然后使用pd.concat进行追加:

df_podcast = pd.concat([df_podcast, df1])

6ljaweal

6ljaweal4#

现在已经很晚了,但我总是在挣扎,我喜欢的方式没有记录在这里。也许它可以帮助别人:

item_default = { "id":None,"name":"Untitled" }
df  = pd.DataFrame(columns=item_default.keys())
#some loop
for podcast in podcasts:
    item=item_default
    item["name"]=podcast.text
    df_podcast = pd.concat([df_podcast, pd.Dataframe.from_records([item])],ignore_index=True)

字符串
其优点是,您不需要在项目中有一个正确的顺序,并且如果需要,您可以在每次迭代中自由地添加多个项目。

相关问题