Pandas Merge在2个常见列上:保留左边的所有左边,保留左边的两列

时间:2017-08-03 00:13:40

标签: python pandas merge

我有2个DataFrame。

第一个包含我想要保留的ID以及详细信息。其中一个细节是事件的地址。 (159880行)

第二个DataFrame有lat&第一个DataFrame中的地址lon(加上更多)。 (121769)

这应该是多对一关系,因为同一地址有多个事件。作为输出,我想要的是带有lat& amp;的第一个DataFrame。 lon列添加了。我可以使用apply和latlon DataFrame中的简单搜索来完成此操作。然而,这非常缓慢 - 几十分钟慢。因此,我决定尝试pandas.merge。

在我看来,这应该有效:

combo = pd.merge(df1, df2, how='left', left_on=['col1', 'col2'], 
                 right_on=['col1_2', 'col2_2'], indicator='indicator_column')

此合并会生成一个包含726789行的DataFrame。指示器列显示了1或其他DataFrame中的大量行。它们都应该来自两者或者只是左派。 (地址有一些拼写错误,所以我希望有些地址不匹配。)

我尝试过内部,外部和左侧合并的几种变体。无结果导致行数少于500k的DataFrame。

谷歌搜索时间没有帮助。可能是因为我没有以正确的方式提问。我一直在阅读关于加入,康卡特和合并的Pandas文档部分。

0 个答案:

没有答案