Seite 1 von 1

Dem DataFrame eine Liste übergeben der Geschwindigkeit wegen

Verfasst: Montag 31. Dezember 2018, 21:53
von Strawk
Hallo!

Code: Alles auswählen

class Track():
    def __init__(self, gpxdata):
        """
        constructor, creates dataframe
        """
        data = gpxdata.tracks[0].segments[0].points
        df = pd.DataFrame(columns=['lon', 'lat', 'alt', 'time'])
        
        for point in data:
            df = df.append({'lon': point.longitude, 'lat' : point.latitude, 'alt' : point.elevation, 'time' : point.time}, ignore_index=True)
        
        self.df = df
Das Anhängen an den DataFrame ist zeitintensiv. Deswegen möchte ich erst eine (schnellere) Liste und dann diese als Ganzes dem DataFrame übergeben. Aber ich habe ein Brett vor dem Kopf. Wie mache ich das?
LG Strawk

Re: Dem DataFrame eine Liste übergeben der Geschwindigkeit wegen

Verfasst: Montag 31. Dezember 2018, 22:45
von __blackjack__
@Strawk: Du erstellst einfach eine Liste von dem was Du da jetzt an den `DataFrame` anhängst und übergibst die dann `DataFrame` beim erstellen.

Re: Dem DataFrame eine Liste übergeben der Geschwindigkeit wegen

Verfasst: Montag 31. Dezember 2018, 22:56
von Strawk
Hallo!
Mein Kopf raucht seit vier Stunden; darf ich ausnahmsweise um konkreten Code bitten?
Strawk

Re: Dem DataFrame eine Liste übergeben der Geschwindigkeit wegen

Verfasst: Dienstag 1. Januar 2019, 01:28
von Sirius3
Wörtlicher kann man das, was Du und __blackjack__ geschrieben haben, eigentlich nicht nach Python übersetzen:

Code: Alles auswählen

        df = list()
        for point in data:
            df.append({'lon': point.longitude, 'lat' : point.latitude, 'alt' : point.elevation, 'time' : point.time})
        self.df = pd.DataFrame(df, columns=['lon', 'lat', 'alt', 'time'])

Re: Dem DataFrame eine Liste übergeben der Geschwindigkeit wegen

Verfasst: Dienstag 1. Januar 2019, 10:15
von Strawk
Hallo ihr!
Eine saubere Sache. Ich habe sehr zu danken.
Frohes neues Jahr!
Euer
Strawk :)