我在一个帧(DF1)中有数据,其中包含簇的标签,以及latitude
和longitude
中的相应质心,我有第二个数据帧(DF2),其中包含一些用于地理位置社交的数据媒体帖子以及他们与DBSCAN分配的群集的标签。我需要将DF1中的聚类质心分配/映射到DF2中具有相应聚类标签的帖子。使用pandas,如何指定DF1的纬度和经度(质心)以匹配DF2中的标签?我已尝试使用.join()
和.merge()
加入此方式,但我收到了各种类型和密钥错误。
示例数据:
DF1
cluster_label latitude longitude frequency
0 39.18193382 -77.51885109 6
1 39.18 -77.27 46
2 39.17917928 -76.6688633 35
3 39.1782 -77.2617 48
4 39.1765 -77.1927 6
5 39.1762375 -76.8675441 16
6 39.17468 -76.8204499 7
7 39.17457332 -77.2807235 9
DF2
user_id timestamp latitude longitude cluster_label
3073171535 3/10/2017 11:10 39.18193382 -77.51885109 0
1628115950 3/11/2017 9:04 39.18193382 -77.51885109 0
7.46E+17 3/9/2017 21:52 39.18 -77.27 1
4188084947 3/10/2017 1:53 39.18 -77.27 1
3123690477 3/10/2017 10:44 39.17917928 -76.6688633 2
3063785591 3/10/2017 11:15 39.17917928 -76.6688633 2
2878413353 3/10/2017 14:33 39.1782 -77.2617 3
19410434 3/14/2017 15:32 39.1782 -77.2617 3
7.51E+17 3/9/2017 21:44 39.1765 -77.1927 4
27081288 3/14/2017 12:28 39.1765 -77.1927 4
400535528 3/12/2017 13:30 39.1762375 -76.8675441 5
8.06E+17 3/9/2017 19:45 39.1762375 -76.8675441 5
199324673 3/13/2017 11:12 39.17468 -76.8204499 6
198014146 3/13/2017 11:22 39.17468 -76.8204499 6
195546843 3/13/2017 11:26 39.17468 -76.8204499 6
2344467747 3/10/2017 21:45 39.1746 -77.2807 7
703776919 3/11/2017 20:14 39.1746 -77.2807 7
示例输出
user_id timestamp cluster_label cluster_centroid_lat cluster_centroid_long
3073171535 3/10/2017 11:10 0 39.18193382 -77.51885109
7.46E+17 3/9/2017 21:52 1 39.18 -77.27
答案 0 :(得分:1)
merged=df2.merge(df1,on='cluster_label')
并删除您喜欢的任何列...