2017-06-22 5 views
2

私は2つのExcelを持っています、df1df2という名前です。パンダマージ列別列

df1.columns:url, content, ortheryy

df2.columns:url, content, othterxx

DF1の一部の内容は、いくつかのURL(すべてではない)の空、そしてDF1とDF2を共有しています。 その行に同じURLがある場合、df1の空のコンテンツをdf2で埋めてください。

私は結果

ndf = pd.merge(df1, df2[['url', 'content']], on='url', how='left') 
# how='inner' result same 

試してみました:

2列:content_xとcontent_y

enter image description here

私はそれがDF1とDF2をループによって解決することができます知っているが、私をパンダのやり方が好きです。

答えて

2

私はSeries.combine_firstまたはSeries.fillnaが必要だと思う:

df1['content'] = df1['content'].combine_first(ndf['content_y']) 

または:

df1['content'] = df1['content'].fillna(ndf['content_y']) 

left joindf1ndf同じインデックス値で作成するので、それは動作します。