TLDR: Fügen Sie keine Artikel einzeln an eine Serie an, sondern erweitern Sie sie besser um eine bestellte Sammlung
Ich denke, die Frage in ihrer jetzigen Form ist etwas knifflig. Und die akzeptierte Antwort beantwortet die Frage. Aber je häufiger ich Pandas benutze, desto mehr verstehe ich, dass es eine schlechte Idee ist, Elemente einzeln an eine Serie anzuhängen. Ich werde versuchen zu erklären, warum für Pandas Anfänger.
Sie könnten denken, dass Sie durch Anhängen von Daten an eine bestimmte Serie einige Ressourcen wiederverwenden können. In Wirklichkeit ist eine Serie jedoch nur ein Container, in dem eine Beziehung zwischen einem Index und einem Wertearray gespeichert wird. Jedes ist ein numpy.array unter der Haube, und der Index ist unveränderlich. Wenn Sie der Serie ein Element mit einer Beschriftung hinzufügen, die im Index fehlt, wird ein neuer Index mit der Größe n + 1 erstellt und ein neues Wertewertarray mit derselben Größe. Das heißt, wenn Sie Elemente einzeln anhängen, erstellen Sie bei jedem Schritt zwei weitere Arrays der Größe n + 1.
Übrigens können Sie ein neues Element nicht nach Position anhängen (Sie erhalten einen IndexError) und die Beschriftung in einem Index muss nicht eindeutig sein. Wenn Sie also einen Wert mit einer Beschriftung zuweisen, weisen Sie den Wert allen zu Vorhandene Elemente mit der Bezeichnung und einer neuen Zeile werden in diesem Fall nicht angehängt. Dies kann zu subtilen Fehlern führen.
Die Moral der Geschichte ist, dass Sie Daten nicht einzeln anhängen sollten, sondern besser mit einer geordneten Sammlung erweitern sollten. Das Problem ist, dass Sie eine Serie nicht an Ort und Stelle erweitern können. Aus diesem Grund ist es besser, Ihren Code so zu organisieren, dass Sie eine bestimmte Instanz einer Serie nicht durch Referenz aktualisieren müssen.
Wenn Sie selbst Beschriftungen erstellen und diese zunehmen, können Sie am einfachsten neue Elemente zu einem Wörterbuch hinzufügen, dann eine neue Serie aus dem Wörterbuch erstellen (die Schlüssel werden sortiert) und die Serie an eine alte anhängen. Wenn die Schlüssel nicht erhöht werden, müssen Sie zwei separate Listen für die neuen Beschriftungen und die neuen Werte erstellen.
Nachfolgend einige Codebeispiele:
In [1]: import pandas as pd
In [2]: import numpy as np
In [3]: s = pd.Series(np.arange(4)**2, index=np.arange(4))
In [4]: s
Out[4]:
0 0
1 1
2 4
3 9
dtype: int64
In [6]: id(s.index), id(s.values)
Out[6]: (4470549648, 4470593296)
Wenn wir ein vorhandenes Element aktualisieren, bleiben der Index und das Wertearray gleich (wenn Sie den Werttyp nicht ändern).
In [7]: s[2] = 14
In [8]: id(s.index), id(s.values)
Out[8]: (4470549648, 4470593296)
Wenn Sie jedoch ein neues Element hinzufügen, werden ein neuer Index und ein neues Wertearray generiert:
In [9]: s[4] = 16
In [10]: s
Out[10]:
0 0
1 1
2 14
3 9
4 16
dtype: int64
In [11]: id(s.index), id(s.values)
Out[11]: (4470548560, 4470595056)
Das heißt, wenn Sie mehrere Elemente anhängen, sie in einem Wörterbuch sammeln, eine Serie erstellen, sie an die alte anhängen und das Ergebnis speichern möchten:
In [13]: new_items = {item: item**2 for item in range(5, 7)}
In [14]: s2 = pd.Series(new_items)
In [15]: s2
Out[15]:
5 25
6 36
dtype: int64
In [16]: s = s.append(s2); s
Out[16]:
0 0
1 1
2 14
3 9
4 16
5 25
6 36
dtype: int64