python - pandas 将列与另一列合并

标签 python excel pandas

我有两个 Excel,名为 df1df2

df1.columns:url、内容、ortheryy

df2.columns:url、内容、otherxx

df1中有些内容是空的,并且df1和df2共享一些url(不是全部)。 我想要做的是如果该行具有相同的 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 来解决,但我想做的是 pandas 方式。

最佳答案

我认为需要Series.combine_firstSeries.fillna :

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

或者:

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

它有效,因为left joinndf中创建与df1相同的索引值。

关于python - pandas 将列与另一列合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44693222/

相关文章:

python - 没有名为 'matplotlib.artist' 的模块

python - 通过git hook执行python子进程

excel - 使用 PowerShell 删除已知的 Excel 密码

javascript - Bokeh 中的自定义 javascript 回调可从数据框中选择列并更新绘图

python - 读取文件时保留最后一行

python - 对于我的应用程序,最佳线程数是多少?

vba - Button.Visible=False 在 VBA 中不起作用

python - 如何在 python3.2 中写入电子表格?

python - Pandas DataFrame 按时间戳分组

python - 在 Pandas 数据框中找到最小值并在新列上添加标签