Seite 1 von 1

Pandas df.append() in Schleife

Verfasst: Dienstag 15. Dezember 2020, 08:49
von naheliegend
Hi,

das muss doch auch anders gehen, oder?
Also gerade das mit der Flag. Also es funktioniert, aber sieht komisch aus.

Code: Alles auswählen

flag = True
for j in range(0, anzahl, int(anzahl/3)):
      filename = all_files[j]
      df = read_and_prep_df(filename=filename)
      
      if flag: #im ersten Durchlauf
           df_gesamt = df
           flag = False
      else:
           df_gesamt = df_gesamt.append(df)
 
Danke schonmal .

Re: Pandas df.append() in Schleife

Verfasst: Dienstag 15. Dezember 2020, 09:13
von __blackjack__
@naheliegend: Erst alle DataFrames in eine Liste einlesen und am Ende mit `pandas.concat()` zusammenfügen.

Statt ``int(anzahl / 3)`` könnte man einfach Ganzzahldivision verwenden. Statt das über einen zusätzlichen, unnötigen Index zu lösen würde man einfach die `all_files`-Liste (eigentlich `all_filenames`) ”slicen”.

Ungetestet:

Code: Alles auswählen

    df_gesamt = pd.concat(
        [
            read_and_prep_df(filename=filename)
            for filename in all_filenames[: anzahl : anzahl // 3]
        ]
    )

Re: Pandas df.append() in Schleife

Verfasst: Dienstag 15. Dezember 2020, 13:13
von naheliegend
Perfekt, danke dir.