2017-06-22 158 views
2

我有两个excel,分别命名为df1df2熊猫合并列另一列

df1.columns:url, content, ortheryy

df2.columns:url, content, othterxx

一些内容DF1是空的,并且DF1和DF2份额某些URL(不是全部)。 我想要做的是通过df2填充df1的空白内容,如果该行具有相同的网址。

我试图

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

这导致:

两个列:content_x和content_y

enter image description here

我知道它可以通过DF1和DF2循环解决,但我我想做的就是用熊猫的方式。

回答

2

我觉得需要Series.combine_firstSeries.fillna

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

或者:

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

它的工作原理,因为left joinndf相同的指数值创造尽可能df1