Ich habe einen Datenrahmen mit X- und Y-Koordinaten, die Punkte entlang der Pfade darstellen, die von mehreren verschiedenen Entitäten genommen wurden. Pseudodaten hier, aber es hat ungefähr die Form:
entity_id lat lon time
1001 34.5 14.2 4:55 pm
1001 34.7 14.5 4:58 pm
1001 35.0 14.6 5.03 pm
1002 27.1 19.2 2:01 pm
1002 27.4 19.3 2:08 pm
1002 27.4 19.9 2:09 pm
Was ich tun möchte, ist, diese Punkte nach zu gruppieren entity_id
und dann die Punkte nacheinander zeitlich anzuordnen, um LineString
für jeden ein Objekt zu erstellen entity_id
. Die Ausgabe besteht aus mehreren Zeilen / Pfaden, von denen jede einem entspricht entity_id
.
Ich kann dies tun, indem ich entity_id
jeden Punkt in jedem Schritt durchlaufe und entity_id
die hier bereitgestellten Anweisungen verwende. Gibt es jedoch eine schnellere / effizientere Möglichkeit, GeoPandas oder Shapely zu nutzen, vielleicht mit groupby
?
quelle
df.groupby('entity_id', as_index=False).agg({'geometry': lambda x: ...})