2017-07-14 3 views
1

Ich habe zwei Datenframes. Einer mit Koordinaten von Standorten, der andere mit Verbindungen zwischen ihnen. Zum Beispiel:Werte in einem Datenrahmen mit Werten aus anderen Datenrahmen in Pandas Python überschreiben

df1:

SITE_ID  LAT  LON 
101  23.4244 31.5356 
102  45.0090 14.2424 
103  35.3444 19.4242 
104  42.0000 18.0002 

df2

SITE_ID FIRST SECOND THIRD 
101  102 104  NaN 
102  103 NaN  NaN 
103  104 NaN  NaN 
104  NaN NaN  NaN 

Jetzt möchte ich alle Wert ändern (in allen Spalten) in DF2 mit den Koordinaten von DF1. Wunsch Ausgabe:

SITE_ID    FIRST    SECOND  THIRD 
23.4244 31.5356 45.0090 14.2424 42.0000 18.0002 NaN 
45.0090 14.2424 35.3444 19.4242   NaN  NaN 
35.3444 19.4242 42.0000 18.0002   NaN  NaN 
42.0000 18.0002  NaN     NaN  NaN 

Es ist okay, ein wenig Variation auf diesem weißen Komma zu haben oder in Listen setzen. Später werde ich dies in JSON umwandeln und es mit Javascript Google Maps API verwenden .. Um ehrlich zu sein, habe ich nicht so viel Idee, ich habe versucht mit der Umwandlung in Diktat oder überschreiben beim Zusammenführen, aber nichts wirklich funktioniert bis zum Ende.

Antwort

3

Hier ist eine Art und Weise, erstellen Abbildung von df1 und ersetzen Werte in df2

In [1120]: mapping = df1.set_index('SITE_ID').astype(str).apply(' '.join, axis=1).to_dict() 

In [1121]: mapping 
Out[1121]: 
{101: '23.4244 31.5356', 
102: '45.009 14.2424', 
103: '35.3444 19.4242', 
104: '42.0 18.0002'} 

In [1122]: df2.replace(mapping) 
Out[1122]: 
      SITE_ID   FIRST  SECOND THIRD 
0 23.4244 31.5356 45.009 14.2424 42.0 18.0002 NaN 
1 45.009 14.2424 35.3444 19.4242   NaN NaN 
2 35.3444 19.4242  42.0 18.0002   NaN NaN 
3  42.0 18.0002    NaN   NaN NaN 
+0

Danke, Mann :) – jovicbg

Verwandte Themen