Hallo zusammen!
Ich haben einen Dataframe, der wie folgt aufgebaut ist
Timestamp ID X Y
0 0 100 1.728 14.378
1 12 100 2.035 14.378
2 24 100 2.342 14.378
3 36 100 2.630 14.378
4 48 100 2.937 14.416
Die erste Spalte beschreibt die von Pandas hinzugefügte Nummerierung (irrelevant), die zweite den Timestamp zu der die Koordinate bestimmt wurde, der dritte die dem Objekt zugeordnete ID und die letzten beiden die jeweils gemessene X bzw Y Koordinate. Eine fünfte Spalte wurde noch als "Kennziffer" hinzugefügt und beinhaltet eine Ziffer für die jeweils 20 zueinandergehörigen Koordinatenpunkte (20 Punkte bilden die Trajektorie eines Objekts, daher immer 20er Blöcke)
Nun zu meiner Frage: Wie berechne ich jeweils die zurückgelegte Distanz zwischen zwei Messungen, also den Vektor zwischen (Bsp von oben Zeile 1 und 2) (1.728/14.378) und (2.035/14.378)? Insgesamt habe ich über 100.000 Zeilen zwischen denen ich jeweils den Abstand berechnen und am besten als weitere Spalte einfügen muss
Geschieht dies am besten mit einer Schleife? Ich komme leider absolut nicht weiter, auch durch logisches Denken nicht, vielleicht kann hier ja jemand helfen - vielen Dank!
Euklidische Distanz
Hallo!
Bezüglich der Euklidischen Distanz habe ich noch keinen Code, musste mich in die Aufgabe erstmal eindenken Aber ja Pandas benutze ich dafür, der Code davor bezieht sich auf das hinzufügen der Spalte mit den Kennziffern für die jeweiligen ID 20er Blöcke, da sieht das snippet so aus:
df_sorted['Kennziffer'] = (numpy.arange(len(df_sorted)) / 20).astype(int)
Bezüglich der Euklidischen Distanz habe ich noch keinen Code, musste mich in die Aufgabe erstmal eindenken Aber ja Pandas benutze ich dafür, der Code davor bezieht sich auf das hinzufügen der Spalte mit den Kennziffern für die jeweiligen ID 20er Blöcke, da sieht das snippet so aus:
df_sorted['Kennziffer'] = (numpy.arange(len(df_sorted)) / 20).astype(int)
Ja, die mathematische Grundlage bzw. das theoretische Vorgehen ist nicht das Problem, eher das Durchlaufen aller Zeilen und dann das einschreiben des Ergebnisses in eine Liste bzw das Anhängen dieser Liste an den vorhandenen Dataframe
Du musst keine Zeilen durchlaufen. Sondern einfach nur die Operationen auf dem Frame bzw. den Spalten durchführen. Der erledigt dann die iteration transparent für dich.
https://jakevdp.github.io/PythonDataSci ... andas.html
https://jakevdp.github.io/PythonDataSci ... andas.html
@lauro0704: ich weiß nicht, ob __deets__ Tutorial bei Deinem Problem direkt hilft, da Du keine numpy-Funktionen direkt brauchst.
Aber wie ich schon geschrieben hatte, solltest Du dringend (nochmal) das Tutorial durcharbeiten, wenn Dir so grundlegende Dinge wie anhängen einer Spalte fehlen: https://pandas.pydata.org/pandas-docs/v ... 05-columns
Aber wie ich schon geschrieben hatte, solltest Du dringend (nochmal) das Tutorial durcharbeiten, wenn Dir so grundlegende Dinge wie anhängen einer Spalte fehlen: https://pandas.pydata.org/pandas-docs/v ... 05-columns