J'ai un dataframe j'ai aussi un dictionnaire, où Comment remplir le fichier de données avec des valeurs du dictionnaire pour obtenir p> b code> in
entrée_b code> signifie que je n'ai que la modification des lignes où
rangée.a = b code>. p>
4 Réponses :
Ce n'est peut-être pas la solution la plus efficace, mais d'après ce que je comprends, le travail effectué: rendements: p> Cela deviendra plus lent si le dictionnaire Cette réponse suppose également que les touches du dictionnaire INPUT_B CODE> devient trop volumineux (trop de lignes sont mises à jour, trop d'itérations dans la boucle de la boucle), mais doivent être relativement rapides avec le petit
INPUT_B CODE > 's Même avec un grand
test code> dataframes. p>
INPUT_B code> se réfèrent aux valeurs du
B Code> Colonne dans le Dataframe d'origine et ajoutera des valeurs répétées dans les colonnes
C code> et
d code> pour des valeurs répétées dans la colonne
B code>. p> p>
Utilisation de Mettre à jour CODE>
test=test.set_index('B')
test.update(pd.DataFrame(input_b,index=['C','D']).T)
test=test.reset_index()
test
B A C D
0 1 a NaN NaN
1 2 b Moon Elephant
2 3 b NaN NaN
3 4 b Sun Mouse
Vous pouvez utiliser loc Code>
indexation après avoir défini votre index sur B code>:
Utilisation de Appliquer CODE>
A B C D
0 a 1 NaN NaN
1 b 2 Moon Elephant
2 b 3 NaN NaN
3 b 4 Sun Mouse
Je comprends comment faire cela en tournant d'abord le dictionnaire dans un Dataframe, puis fusionnez-le avec le premier. Cependant, cela devient très lent si le premier Dataframe (test) est beaucoup plus grand que sa partie que je souhaite modifier.
Je pense à transformer votre dictionnaire en un fichier de données en utilisant
pd.from_dict (votre_diction) code>, puis la fusion avec
INPUT_B code> me semble être la meilleure solution. Je serais surpris s'il y a une meilleure solution.