首页 > 解决方案 > Pandas - pd.merge,添加检查以确保列不存在?

问题描述

我有两个数据框,一个是我使用的主要数据框,一个是我想从中获取信息的辅助数据框。

df1(main) 包含一个带有各种名称字符串的 Reporter 列。

df2(附加信息)包含记者姓名和他们的位置。

我希望将位置列添加为df1.

我可以一次性完成以下操作:

df1 = pd.merge(df1, df2, on='Reporter', how='left')

它有效。

我的问题是我运行一个经常更新的脚本(检查新行并检查旧行的更新)并重复运行这行代码为每次执行添加多个列。

标签: pythonpandasdataframe

解决方案


问题pd.merge在于它总是在结果中添加后缀。

不要使用它。

使用等价的DataFrame.joinDataFrame.merge在您正在执行 LEFT JOIN 的那个上。

df1 = df1.join(df2, on='Reporter', how='left')

或者,

df1 = df1.merge(df2, on='Reporter', how='left')

公共列在结果中只保留一次。但是,两者之间的其他相同列(如果有的话)是重复的(带有后缀)。


推荐阅读