猿问

组合/合并具有重复名称的两个数据集

我尝试合并两个数据集(DataFrames),如下所示:


D1 = pd.DataFrame({'Village':['Ampil','Ampil','Ampil','Bachey','Bachey','Center','Center','Center','Center'], 'Code':[123,324,190,453,321,786,456,234,987]})


D2 = pd.DataFrame({'Village':['Ampil','Ampil','Bachey','Bachey','Center','Center'],'Lat':[11.563,13.278,12.637,11.356,12.736,13.456], 'Long':[102.234,103.432,105.673,103.539,103.873,102.983]})

我想根据 Village 列合并两者。我希望输出如下所示:


D3 = pd.DataFrame({'Village': ['Ampil','Ampil','Bachey','Bachey','Center','Center'],'Code':[123,324,453,321,786,456],'Lat':[11.563,13.278,12.637,11.356,12.736,13.456], 'Long':[102.234,103.432,105.673,103.539,103.873,102.983]})

我尝试过加入、合并和连接,但没有一个符合目的。我需要一个适用于更大数据的代码。如果有人可以提供帮助,我将不胜感激。


慕田峪4524236
浏览 87回答 1
1回答

POPMUISE

一种方法是首先为您的初始 dfs 创建一个正在运行的 cumcount Village,然后由两者合并Village和count:df1['count'] = df1.groupby('Village').cumcount()df2["count"] = df2.groupby('Village').cumcount()print (df2.merge(df1,on=["Village","count"],how="left").drop("count",axis=1))#      Village     Lat     Long  Code0   Ampil  11.563  102.234   1231   Ampil  13.278  103.432   3242  Bachey  12.637  105.673   4533  Bachey  11.356  103.539   3214  Center  12.736  103.873   7865  Center  13.456  102.983   456
随时随地看视频慕课网APP

相关分类

Python
我要回答