【发布时间】:2020-03-12 20:15:11
【问题描述】:
我有两个数据框 df1 和 df2。我想将所有列加入到df1,其中两列来自df2。
print(df1.shape[0])
# 344
print(df2.shape[0])
# 3577
df3 = pd.merge(df1, df2[['latitude', 'longitude', 'code']],
how ='left', left_on=['LOCATION'], right_on=['code'])
print(df3.shape[0])
# 1740
在我的输出数据框中,我只需要来自 df1 的 344 条记录以及来自 df2 的列。
我的代码有什么问题?
【问题讨论】:
-
为什么分配给
.shape? -
您的加入中出现了重复项。 df2 中有超过 1 条记录对应 df1 中的 1 条记录
-
@FatihAkici,我从 df2 中删除了重复项并进行了内部连接,现在我得到了 313 条记录,其中 df1 少了 30 条。
-
@DYZ,它有很多记录。你在问什么
-
@ashokeapen 这意味着您在
df1中有 344-313 = 31 个LOCATIONs,它们在codes 中的df2中不存在。这是数据的错,而不是你的代码......
标签: python pandas dataframe join merge