2015-04-08 19 views
52

Ho un dataframe esistente che ho bisogno di aggiungere una colonna aggiuntiva a cui conterrà lo stesso valore per ogni riga.Aggiungi colonna a dataframe con valore predefinito

df esistente:

Date, Open, High, Low, Close 
01-01-2015, 565, 600, 400, 450 

Nuovo df:

Name, Date, Open, High, Low, Close 
abc, 01-01-2015, 565, 600, 400, 450 

so come aggiungere una colonna di serie/dataframe esistente. Ma questa è una situazione diversa, perché tutto ciò di cui ho bisogno è aggiungere la colonna 'Nome' e impostare ogni riga sullo stesso valore, in questo caso 'abc'.

Non sono del tutto sicuro di come farlo.

risposta

77

df['Name']='abc' aggiungerà la nuova colonna e impostare tutte le righe di tale valore:

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 
+5

C'è un altro modo per farlo? Sto ricevendo il seguente avviso. Un valore sta tentando di essere impostato su una copia di una sezione da un DataFrame. Prova a utilizzare .loc [row_indexer, col_indexer] = valore invece. Vedere le avvertenze nella documentazione: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy –

+0

Ciò significa che si sta assegnando a qualcosa che è una copia e non il df originale, non posso commentare ulteriormente senza vedere i dati e il tuo codice sotto forma di domanda. Rispondere alle domande nei commenti è controproducente. Questo codice funziona, hai già fatto qualcosa prima di sollevare l'avviso – EdChum

+0

@vishnuviswanath. Ricevo esattamente lo stesso avviso quando utilizzo Jupyter Notebook. Succede a me quando ho dimensioni DataFrame non banali (> 200 record) e certe combinazioni di incarichi e semplicemente stampando il df. – Bill

17

fodera singole opere

df['Name'] = 'abc' 

Crea una colonna Name e imposta tutte le righe di abc valore

11

È possibile utilizzare insert per specificare dove si desidera che sia la nuova colonna. In questo caso, utilizzo 0 per posizionare la nuova colonna a sinistra.

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

    Name  Date Open High Low Close 
0 abc 01-01-2015 565 600 400 450 
Problemi correlati