web-dev-qa-db-fra.com

Ajouter le dictionnaire à pandas dataframe en boucle

J'ai besoin de créer un dictionnaire dans une boucle et de les ajouter à une trame de données pandas avec le nom de clé correspondant de dict et le nom de colonne de trame de données. Les paires de valeurs clés du dictionnaire dans chaque itération peut être différent. Un bloc de données vide pandas df_podcast ont été définis au début avec toutes les clés possibles dans le dictionnaire.

Voici un exemple de code qui n'est pas encore terminé

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 ############

J'ai ajouté podcast_dict à df_podcast. Le podcast est en fait une liste de listes, ici je ne considère que la 1ère ligne de la liste

5
Leo

Vous avez besoin:

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

Si vous souhaitez simplement ajouter de nouvelles données d'un dictionnaire créé dans une boucle à un Dataframe existant:

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

REMARQUE: Tant que les clés de votre dictionnaire créé sont identiques, l'ajout à une trame de données existante ne devrait pas être fastidieux. Source

6
Sumanth Lazarus

IIUC:

Ce que vous devez faire est de créer votre dictionnaire avec votre boucle, puis à la fin de votre boucle, vous pouvez utiliser votre dictionnaire pour créer une trame de données avec:

df1  = pd.DataFrame(podcast_dict)

Et ajoutez en utilisant pd.concat:

df_podcast = pd.concat([df_podcast, df1])
4
Scott Boston