当您将两个具有相似列名的 DF 连接在一起时:
df = df1.join(df2, df1['id'] == df2['id'])
Join 可以正常工作,但是你不能调用 id
列,因为它是模棱两可的,你会得到以下异常:
异常: “引用‘ id’是不明确的, 可能是: id # 5691,id # 5918
这使得 id
不再可用..。
下面的函数解决了这个问题:
def join(df1, df2, cond, how='left'):
df = df1.join(df2, cond, how=how)
repeated_columns = [c for c in df1.columns if c in df2.columns]
for col in repeated_columns:
df = df.drop(df2[col])
return df
我不喜欢的是,我必须迭代列名,然后一个一个地删除它们。这看起来真的很笨重。
您是否知道有其他解决方案可以更优雅地联接和删除重复的列,或者删除多个列,而不需要对每个列进行迭代?