2013-11-04 10 views
5

Applico alcune funzioni e generi un nuovo valore di colonna in una colonna esistente di dataframe Pandas. Tuttavia, df['col1'] = new_list non funziona per assegnare un nuovo elenco alla colonna. È il modo sbagliato e qual è il modo accurato per applicare tale operazione?Come assegnare un elenco alla colonna esistente di Data Frame di Pandas?

+1

'df' è un dizionario? Stai ricevendo un errore o cosa? Pubblica più dettagli per favore. – moenad

+2

Immagino che 'df' sia un 'DataFrame' di Pandas, come suggerisce il titolo e il testo della domanda. – piokuc

+2

Quando dici che "non funziona" potresti chiarire che cosa esattamente non funziona, ad es. un esempio e lo stacktrace completo. Sembra che dovrebbe funzionare. –

risposta

7

dovrebbe funzionare se la lunghezza della lista è uguale al numero di righe della dataframe

>>> df = pd.DataFrame({'A':[1,2,3], 'B':[4,5,6]}) 
>>> df['C'] = [10,20,30] 
>>> df 
    A B C 
0 1 4 10 
1 2 5 20 
2 3 6 30 

Se l'elenco è più breve o più lungo dataframe, allora riceverai un errore Length of values does not match length of index.

+1

Nel tuo esempio non stai riassegnando una colonna, stai semplicemente aggiungendo una nuova colonna ad esso. – Astrid

+1

Vero, tuttavia, funziona anche se 'C' è stato definito (con valori diversi) nella prima riga. – gseattle

Problemi correlati