J'ai un dataframe existant auquel je dois ajouter une colonne supplémentaire à laquelle contiendra la même valeur pour chaque ligne.
DF existant:
Date, Open, High, Low, Close
01-01-2015, 565, 600, 400, 450
Nouveau df:
Name, Date, Open, High, Low, Close
abc, 01-01-2015, 565, 600, 400, 450
Je sais comment ajouter une colonne série / dataframe existante. Mais c'est une situation différente, car tout ce dont j'ai besoin est d'ajouter la colonne «Nom» et de définir chaque ligne sur la même valeur, dans ce cas «abc».
.copy()
, avant de l'utiliser (à moins que ce soit énorme ou que quelque chose ou les performances comptent vraiment).Vous pouvez utiliser
insert
pour spécifier l'emplacement de la nouvelle colonne. Dans ce cas, j'utilise0
pour placer la nouvelle colonne à gauche.la source
df.insert(0,'coef_fix',1)
. J'utilise JupyterLab avec Python 3.0insert
fonctionneinplace
. Cela signifie que la valeur de la nouvelle trame de données n'est pas renvoyée mais que la trame de données d'origine a été modifiée. Essayez cecidf = pd.DataFrame(0, range(1460), range(41)); df.insert(0, 'coef_fix', 1); df
Travaux de doublure simple
Crée une
Name
colonne et définit toutes les lignes sur laabc
valeurla source
Résumer ce que les autres ont suggéré et ajouter une troisième voie
Vous pouvez:
assign (** kwargs) :
accédez à la nouvelle série de colonnes (elle sera créée) et définissez-la:
insert (loc, colonne, valeur, allow_duplicates = False)
où l'argument loc (0 <= loc <= len (colonnes)) vous permet d'insérer la colonne où vous le souhaitez.
'loc' vous donne l'index auquel votre colonne sera après l'insertion. Par exemple, le code ci-dessus insère la colonne Nom comme 0-ème colonne, c'est-à-dire qu'il sera inséré avant la première colonne, devenant ainsi la nouvelle première colonne. (L'indexation commence à 0).
Toutes ces méthodes vous permettent également d'ajouter une nouvelle colonne à partir d'une série (remplacez simplement l'argument par défaut 'abc' ci-dessus par la série).
la source