2016-11-22 1 views
1

ich Pandas Datenrahmen in folgendem Format haben:Verarbeitung von Pandas Datenrahmen

Latitude Longitude 
-31.563910 147.154312 
-33.718234 150.363181 
-33.727111 150.371124 

Zur weiteren Verarbeitung muss ich es in ein Format wie unten konvertieren:

Beispielausgabe:

[ 
    {lat: -31.563910, lng: 147.154312}, 
    {lat: -33.718234, lng: 150.363181}, 
    {lat: -33.727111, lng: 150.371124} 
] 

habe ich versucht, diesen Code, aber es funktioniert nicht:

list1 = [] 
for index,row in dfLatLong.iterrows(): 
    list1.append("{lat:" + row['StartLat'] + ", lng:" + row['StartLong'] + "},") 
+0

ist 'df.rename (Spalten = { 'Latitude': 'lat', 'Länge': 'lng'}). To_json (orient = 'Datensätze')' OK? – EdChum

+0

Entschuldigung, ich versuche, die Ausgabe in dem Format zu erhalten, das in der Beispielausgabe ohne irgendwelche Anführungszeichen spezifiziert wird. – user3447653

+0

Können Sie die aktualisierte Antwort überprüfen – EdChum

Antwort

2

Sie können to_dict mit param rufen orient='records':

In [40]: 
df.to_dict(orient='records') 

Out[40]: 
[{'Latitude': -31.563909999999996, 'Longitude': 147.154312}, 
{'Latitude': -33.718234000000002, 'Longitude': 150.363181}, 
{'Latitude': -33.727111000000001, 'Longitude': 150.37112400000001}] 

Sie die cols vor der oben rename können die Namen bekommen Sie wünschen:

In [42]: 

df.rename(columns={'Latitude':'lat', 'Longitude':'lng'}).to_dict(orient='records') 

Out[42]: 
[{'lat': -31.563909999999996, 'lng': 147.154312}, 
{'lat': -33.718234000000002, 'lng': 150.363181}, 
{'lat': -33.727111000000001, 'lng': 150.37112400000001}] 

EDIT

werden Sie muss über den df gehen, um die gewünschte Ausgabe zu bekommen

+0

Danke. Ist es möglich, die Zitate um lat und lng zu entfernen? – user3447653

+0

Nein, sie sind Strings, sie werden in diesem Fall keine gültigen Schlüssel sein, gibt es einen Grund, warum du das nicht willst? – EdChum

+0

Ok, ich muss dies an eine JavaScript-Funktion übergeben, die nur Zeichenfolgen ohne Anführungszeichen akzeptiert. – user3447653

0
df.rename(columns={'Latitude':'lat', 'Longitude':'lng'}).to_json(orient='records').replace('\"', '') 
+0

'[{lat: 29.708519, lng: -95.61705}, {lat: 53.5912971, lng: -113.600922}, {lat: 43.5880966, lng: -79.7750244}, {lat: 50.28127, lng: -119.256882}, {lat: 46.173645, lng: -60.24228}] '. Ist es möglich, die Anführungszeichen am Anfang und am Ende zu entfernen? – user3447653

+0

Ich verstehe, dass dies möglicherweise nicht möglich ist, da wir to_json verwenden, nur zu fragen, ob es andere Möglichkeiten gibt, dies zu erreichen. – user3447653

+0

Willst du eine Liste oder str bei der Ausgabe bekommen? – biniow