基于另外两个数据框创建新的数据框

时间:2016-05-16 20:17:56

标签: python dataframe

实际上我还是Python和Pandas的新手,不知道该怎么做。

基本概述:我必须创建一个位置推荐系统。我收到了一些venueIDsub(!)categoryID的四方数据。但我的建议应该考虑主要类别的所有数据。所以我必须将主要类别分配到我的场地。

我的foursquare数据框如下所示:

UserID  VenueID CategoryID  CategoryName    
470 49bbd6c0f964a520f4531fe3    4bf58dd8d48988d127951735    Arts & Crafts Store 
979 4a43c0aef964a520c6a61fe3    4bf58dd8d48988d1df941735    Bridge  
69  4c5cc7b485a1e21e00d35711    4bf58dd8d48988d103941735    Home (private)  

我已经创建了一个包含主要类别及其子类别的数据框:

 Main Category Name          Main Category ID         Sub Categories Name         Sub Categories ID
0    Arts & Entertainment  4d4b7104d754a06370d81259                Amphitheater  56aa371be4b08b9a8d5734db
1    Arts & Entertainment  4d4b7104d754a06370d81259                    Aquarium  4fceea171983d5d06c3e9823
2    Arts & Entertainment  4d4b7104d754a06370d81259                      Arcade  4bf58dd8d48988d1e1931735

基本上我想:如果VenueID's Category ID(来自foursquare df)位于categories_df,则在新数据框中将venueID与相应的主category ID对齐。我希望你能理解我的意思。

最后,我只想使用主要类别作为我的推荐,而不考虑子类别。

提前致谢!

1 个答案:

答案 0 :(得分:0)

结帐pandas.DataFrame.merge

df_foursquare.merge(df_categories, how='left', left_on=['CategoryID'], right_on=['Sub Categories ID'])