J'ai un tableau de dictionnaires avec les mêmes clés et j'ai déjà un modèle de pandas avec les en-têtes df avec moi. Je dois parcourir le tableau et ajouter chaque dictionnaire au df.

arr_dics = [{'event':'alpha', 'site':'beta', 'date':'gamma'}, {'event':'a', 'site':'b', 'date':'c'}] 

for i in range(len(arr_dics)):
    new_dic = arr_dics[i]
    two_games_df.append(new_dic, ignore_index=True)

Cependant, la sortie que j'obtiens n'ajoute que le deuxième dictionnaire au dataframe. Dois-je spécifier l'index quelque part?

2
KTK POSITRONIC 4 juin 2020 à 12:46

3 réponses

Meilleure réponse

Pour votre confusion, notez que append n'est pas inplace. Vous devez donc attribuer la sortie de la fonction append à l'original df:

two_games_df=  two_games_df.append(new_dic, ignore_index=True)
1
paradoxlover 4 juin 2020 à 09:54

Utilisez pd.concat

arr_dic = [{'event':'alpha', 'site':'beta', 'date':'gamma'}, {'event':'a', 'site':'b', 'date':'c'}] 
df = pd.DataFrame(columns=['event','site','date'])

df = pd.concat([df, pd.DataFrame(arr_dic)])
df
   event  site   date
0  alpha  beta  gamma
1      a     b      c
1
Dishin H Goyani 4 juin 2020 à 09:53

Utilisation

two_games_df=two_games_df.append(new_dic, ignore_index=True) 

Df.append ajoute les lignes de other à la fin de l'appelant, renvoyant un nouvel objet et vous devez enregistrer le nouvel objet.

Df.append ne modifie pas l'objet d'origine.

1
Redvelvetpastry 4 juin 2020 à 12:19