2017-10-03 6 views
0

J'essaie de fusionner correctement deux bases de données dans un ensemble de pandas, de sorte qu'à la fin je puisse avoir les bons index et colonnes.Fusion de données sans NaNs

Mes dataframes ressemblent à ce

DF1

enter image description here

DF2 enter image description here merged_df

Le merged_df est tout simplement DF1 (le même indice, et même colonne de mot), à l'exception il a aussi une colonne de valeur à droite qui donne les valeurs pour chacun des mots. En outre, si le mot n'est pas dans df2, il renverra une valeur NaN dans le fichier merged_df.

Cela semble assez simple à faire, mais j'ai essayé plusieurs combinaisons avec la méthode de fusion et je n'ai pas obtenu ce dont j'avais besoin.

+0

Tout code que nous pourrions essayer? – eventHandler

Répondre

0

Je suppose que vous êtes à la recherche map:

s = df1['word'].map(df2.set_index('word')['value']) 
merged_df = df1.assign(value=s) 

Vous pouvez aussi créer un dictionnaire de correspondances avec .values, puis appelez map:

mapping = dict(df2.values) 
merged_df = df1.assign(value=df1['word'].map(mapping)) 
+0

Merci! ça a bien marché! J'aurais aimé connaître la méthode de la carte! – hedebyhedge