2014-11-26 29 views
6

Betrachten Sie die folgenden DataFrame.Kombinieren Sie Spalten in einem Pandas DataFrame mit einer Spalte von Listen in einem 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 

Für jede Zeile will, muß ich die Werte von v2, v3, v4 zu einer Liste hinzuzufügen und die Werte in der Liste mit v5 und das Ergebnis in eine neue Spalte v6, so dass ich am Ende mit multiplizieren ein DataFrame wie folgt aus:

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

Wie kann ich dies in Pandas erreichen?

Antwort

14

Sie können es wie folgt in einer Zeile tun:

>>> 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] 

Dies ist die entsprechende Multiplikation der Spalten, stellt die v2, v3 und v4 Werte aus einer Liste von Listen (Zeile für Zeile) und erstellt die neue Spalte v6.

Verwandte Themen