2014-11-26 82 views
6

Considerare il seguente DataFrame.Combinare colonne in un DataFrame di Pandas in una colonna di elenchi in un DataFrame

n v1 v2 v3 v4 v5 
0 1 2 3 4 5 
1 1 2 3 4 5 
2 1 2 3 4 5 

Per ogni riga, voglio aggiungere i valori di v2, v3, v4 a una lista e moltiplicare i valori nella lista con v5 e mettere il risultato in una nuova colonna v6 tale che io alla fine con un DataFrame come questo:

n v1 v6 
0 1 [10, 15, 20] 
1 1 [10, 15, 20] 
2 1 [10, 15, 20] 

Come posso raggiungere questo obiettivo in Panda?

risposta

14

Lo si può fare in una sola riga come questa:

>>> df['v6'] = df[['v2', 'v3', 'v4']].mul(df['v5'], axis=0).values.tolist() 
>>> df 
    v1 v2 v3 v4 v5   v6 
0 1 2 3 4 5 [10, 15, 20] 
1 1 2 3 4 5 [10, 15, 20] 
2 1 2 3 4 5 [10, 15, 20] 

Ciò relativo moltiplicazione delle colonne, mette i valori v2, v3 e v4 fuori per una lista di liste (riga per riga) e crea la nuova colonna v6.

Problemi correlati