【发布时间】:2021-10-08 16:18:56
【问题描述】:
我有 3 个具有相同 ID 列的数据框。我想将它们组合成一个数据框。我想结合 SQL 中的内部连接逻辑。当我尝试下面的代码时,它会给出以下结果。即使 ID 列匹配,它也会正确连接两个数据框,但会使最后一个错误。我怎样才能解决这个问题?提前感谢您的帮助。
dfs = [DF1, DF2, DF3]
df_final = reduce(lambda left, right: pd.merge(left, right, on=["ID"], how="outer"), dfs)
已解决:DF1中ID列的数据类型是int,其他都是str。在问这个问题之前,我在 DF1 中找到了 ID 列并得到了以下结果。然后,当我将它们全部转换为 int 数据类型时,我得到了我想要的结果。
【问题讨论】:
-
能否提供 3 个数据帧的样本?
-
你说你想内部加入他们,但你正在做一个外部加入。只需要换成
how='inner'吗? -
查看您的输出,我的第一个猜测是您的一个数据框的 ID 列是不同的 dtype。也许两个有 int 列,而第三个是字符串?
-
尝试创建MCVE
-
是的,我想要内部连接,我尝试了 how=inner 但它返回了空 df。
标签: python pandas dataframe join merge