Ich habe einen vorhandenen Datenrahmen, dem ich eine zusätzliche Spalte hinzufügen muss, die für jede Zeile den gleichen Wert enthält.
Bestehende df:
Date, Open, High, Low, Close
01-01-2015, 565, 600, 400, 450
Neues df:
Name, Date, Open, High, Low, Close
abc, 01-01-2015, 565, 600, 400, 450
Ich kann eine vorhandene Serien- / Datenrahmenspalte anhängen. Dies ist jedoch eine andere Situation, da ich lediglich die Spalte 'Name' hinzufügen und jede Zeile auf den gleichen Wert setzen muss, in diesem Fall 'abc'.
.copy()
, bevor Sie diesen verwenden (es sei denn, er ist riesig oder etwas oder die Leistung zählt wirklich).Mit können Sie
insert
angeben, wo sich eine neue Spalte befinden soll. In diesem Fall platziere ich0
die neue Spalte links.quelle
df.insert(0,'coef_fix',1)
. Ich benutze JupyterLab mit Python 3.0insert
funktioniertinplace
. Dies bedeutet, dass der Wert des neuen Datenrahmens nicht zurückgegeben wird, sondern der ursprüngliche Datenrahmen geändert wurde. Versuchen Sie diesdf = pd.DataFrame(0, range(1460), range(41)); df.insert(0, 'coef_fix', 1); df
Single Liner funktioniert
Erstellt eine
Name
Spalte und setzt alle Zeilen aufabc
Wertquelle
Fassen Sie zusammen, was die anderen vorgeschlagen haben, und fügen Sie einen dritten Weg hinzu
Sie können:
zuweisen (** kwargs) :
Greifen Sie auf die neue Spaltenreihe zu (sie wird erstellt) und legen Sie sie fest:
Einfügen (loc, column, value, allow_duplicates = False)
Mit dem Argument loc (0 <= loc <= len (Spalten)) können Sie die gewünschte Spalte einfügen.
‚loc‘ gibt Ihnen den Index , dass Ihre Spalte sein nach dem Einsetzen. Im obigen Code wird beispielsweise der Spaltenname als 0. Spalte eingefügt, dh er wird vor der ersten Spalte eingefügt und wird zur neuen ersten Spalte. (Die Indizierung beginnt bei 0).
Mit all diesen Methoden können Sie auch eine neue Spalte aus einer Reihe hinzufügen (ersetzen Sie einfach das Standardargument 'abc' oben durch die Reihe).
quelle