Zusammenfügen von DataFrames mit Pandas?

1 Antwort

Der Code, den du gezeigt hast, erstellt tatsächlich jedes Mal ein neues `new_values` DataFrame. Daher überschreibt er die vorherigen Werte nicht, sondern erstellt einfach ein neues DataFrame.

Wenn du die neuen Werte an das vorhandene DataFrame anhängen möchtest, musst du das DataFrame außerhalb des Codes erstellen, der die neuen Werte hinzufügt. Dann kannst du die `append` Funktion verwenden, um die neuen Werte hinzuzufügen, und den resultierenden DataFrame zu speichern.

Hier ist ein Beispiel:

```python

# Das DataFrame erstellen

points = pd.DataFrame(

  {

    'Costs in million €/a': [11, 12, 13],

    'CO2-emissions in t/a': [17000, 14000, 16000],

    'Name': ['Ben', 'Timo', 'Marco']

  }

)

# Hier passiert irgendwas, was die Werte von annual_costs, annual_emissions, und input_name bestimmt

# ....

# Das neue DataFrame erstellen

new_values = pd.DataFrame(

  {

    'Costs in million €/a': [annual_costs],

    'CO2-emissions in t/a': [annual_emissions],

    'Name': [input_values_dict["input_name"]]

  }

)

# Die neuen Werte hinzufügen

points = points.append(new_values, ignore_index=True)

```

Beachte, dass ich die Werte von `annual_costs`, `annual_emissions` und `input_name` in Listen umgewandelt habe. Das liegt daran, dass Pandas erwartet, dass die Werte für jede Spalte in einer Liste oder einem ähnlichen Container vorkommen.

Darüber hinaus ist es wichtig, das Ergebnis der `append`-Funktion zu speichern. Diese Funktion gibt einen neuen DataFrame zurück, der die kombinierten Daten enthält, anstatt den vorhandenen DataFrame zu ändern.

Schließlich erlaubt das `ignore_index=True` Argument, dass Pandas die Indizes für das resultierende DataFrame neu generiert, so dass es eine fortlaufende Numerierung von 0 bis n-1 gibt, wobei n die Gesamtzahl der Zeilen ist. Wenn du das nicht tust, behält jeder DataFrame seine ursprünglichen Indizes bei, was zu doppelten Indizes führen kann.