2017-02-06 2 views
3

Ich habe zwei unterschiedlich geformte df. Eine enthält Wörter und ihre Frequenzen, die andere enthält Wörter und ihre Lemmata.Bedingte Füllung einer Spalte eines Pandas df mit Werten eines anderen df

Das erste df bildet immer ein Wort mit einer Frequenz ab, das zweite df bildet viele Wörter auf ein Lemma ab (mehrfach). ZB:

df1:

word frequency 
    de 33504559 
    que 32700217 
    no 28263302 
    a 21978600 
    la 21249418 

und DF2:

 lemma  word 
    zurullo zurullos 
    zurupeto zurupetos 
    zutano  zutana 
    zutano zutanas 
    zutano zutanos 

Ich mag würde die Lemma Informationen zu df1, hinzufügen, indem jedes Wort von df1 suchen, um es zu dem Vergleich Wörter in df2, und ziehen Sie die Lemma-Informationen von df2, um es zurück zu df1 hinzuzufügen.


Es gibt nützliche Antworten für when the value is always the same in df1, aber da ich dies für jede Zeile tun mag, die jeweils ein anderes Wort enthält, ich bin nicht sicher, wie es weitergeht. (Ich habe the merging and concatenating docs section aber wieder aufgetaucht verwirrter als zuvor ...)

In just-Python ich Loops verwenden würde, z.B .:

new_df = dict() 
# assuming all dfs are dicts 
for w, f in df1.items(): 
    if w in df2.keys(): 
     new_df[w] = (df2[w], f) 

Würde gerne mehr über diese Datenrahmen Operationen mit Pandas zu lernen.

Antwort

1

Versuchen Sie folgendes:

df1.merge(df2, how='left', on='word') 
Verwandte Themen