web-dev-qa-db-fra.com

Ajouter une colonne à dataframe avec une valeur par défaut

J'ai une base de données existante à laquelle je dois ajouter une colonne supplémentaire qui 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 series/dataframe existante. Mais il s'agit d'une situation différente, car tout ce dont j'ai besoin est d'ajouter la colonne "Nom" et de définir chaque ligne avec la même valeur, dans ce cas "abc".

Je ne sais pas trop comment faire ça.

133
darkpool

df['Name']='abc' ajoutera la nouvelle colonne et définira toutes les lignes sur cette valeur:

In [79]:

df
Out[79]:
         Date, Open, High,  Low,  Close
0  01-01-2015,  565,  600,  400,    450
In [80]:

df['Name'] = 'abc'
df
Out[80]:
         Date, Open, High,  Low,  Close Name
0  01-01-2015,  565,  600,  400,    450  abc
209
EdChum

Vous pouvez utiliser insert pour spécifier l'emplacement de la nouvelle colonne. Dans ce cas, j'utilise 0 pour placer la nouvelle colonne à gauche.

df.insert(0, 'Name', 'abc')

  Name        Date  Open  High  Low  Close
0  abc  01-01-2015   565   600  400    450
47
piRSquared

Travaux de doublure unique

df['Name'] = 'abc'

Crée une colonne Name et définit toutes les lignes sur la valeur abc

31
Zero

Résumer ce que les autres ont suggéré et ajouter une troisième manière

Vous pouvez:

  • attribuer (** kwargs) :

    df.assign(Name='abc')
    
  • accédez à la nouvelle série de colonnes (elle sera créée) et définissez-la:

    df['Name'] = 'abc'
    
  • insert (loc, colonne, valeur, allow_duplicates = False)

    df.insert(0, 'Name', 'abc')
    

    où l'argument loc (0 <= loc <= len (colonnes)) vous permet d'insérer la colonne à l'endroit souhaité.

    'loc' vous donne l'indice que votre colonne sera à après l'insertion. Par exemple, le code ci-dessus insère le nom de la colonne en tant que 0e 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 (il suffit de remplacer l'argument par défaut 'abc' ci-dessus par la série).

24