2017-02-28 3 views
-1

Wenn ich einen Datenrahmen aufweisen, die wie untenVerketten von zwei Schwimmer in einer Spalte in pandas

Spalten schwimmen hat
Pickup_longitude Pickup_latitude 
1176807 -73.929321 40.746761 
753359 -73.940964 40.679981 
1378672 -73.924011 40.824677 
302960 -73.845108 40.754841 
827558 -73.937073 40.820759 

Ich möchte das lat-long as („lat“, „long“) in einer verketten Säule.

Ich habe unten Code für Beispiel drei Zeilen, aber ich frage mich, gibt es eine schnellere Methode anstelle der Konvertierung in Zeichenfolge mit .astype (str). Ich habe anfangs versucht, str() zu verwenden, aber das nimmt auch die Indexwerte mit hinein.

trip_data_sample['lat_long_pickup']=trip_data_sample["Pickup_latitude"][:3].astype(str)+","+\ 
trip_data_sample["Pickup_longitude"].astype(str) 
+0

Dies ist eine ganz gute Methode - lesbar und effizient mit Standard-Pandas-Methoden. Ich glaube nicht, dass es einen Grund gibt, eine andere Funktion zu erwarten, die schneller in eine Zeichenkette konvertiert als .astype (str). Sehen Sie tatsächliche Leistungsprobleme oder versuchen Sie einfach, die schnellste Methode zu finden? –

Antwort

0

Sie könnten Tupel mit einer Liste Verständnis schaffen und die Indizierung der Datenrahmen:

df['lat_long'] = [', '.join(str(x) for x in y) for y in map(tuple, df[['Pickup_latitude', 'Pickup_longitude']].values)] 

df wie folgt aussieht jetzt:

>>> df 
     Pickup_longitude Pickup_latitude    lat_long 
1176807  -73.929321  40.746761 40.746761, -73.929321 
753359   -73.940964  40.679981 40.679981, -73.940964 
1378672  -73.924011  40.824677 40.824677, -73.924011 
302960   -73.845108  40.754841 40.754841, -73.845108 
827558   -73.937073  40.820759 40.820759, -73.937073 
+0

Es ist keine Zeichenfolge. Was wir wollen, ist "48.355328,11.7917104". so etwas weiter zu geben – Baktaawar

+0

Siehe meine Bearbeitung - kleine Änderung. – blacksite

Verwandte Themen