2017-04-15 1 views
0

I-Daten in einem Rahmen (DF1) mit Etikett für Cluster haben, und ihre entsprechenden Zentroiden in latitude und longitude, und ich habe einen zweiten Datenrahmen (DF2) Sie enthält einige Daten für geolokalisierte Social-Media-Posts und die Labels der Cluster, denen sie mit DBSCAN zugewiesen wurden. Ich muss die Clusterschwerpunkte von DF1 zu Pfosten mit den entsprechenden Clusterbeschriftungen in DF2 zuweisen/zuordnen. Mit Pandas, wie kann ich den Breitengrad und den Längengrad (Zentroide) von DF1 den Markierungen in DF2 zuordnen? Ich habe versucht, mit .join() und .merge() auf diese Weise beizutreten, aber ich habe verschiedene Art und Schlüsselfehler erhalten.Python/Pandas, Assign Daten von einem Rahmen zu entsprechenden Daten in einem anderen

Beispieldaten:

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 

Ausgabe

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 

Antwort

1
merged=df2.merge(df1,on='cluster_label') 

-and-Drop, was Spalten Sie möchten ...

+0

Ich bin nicht sicher, was ich falsch 'df2.merge mit tun()' früher, aber Ihr funktionierte perfekt. Vielen Dank! –

Verwandte Themen