Combine columns in a Pandas DataFrame to a column of lists in a DataFrame

dataframe, list, pandas, python

Solution

You can do it in one line like this:

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

This does the relevant multiplication of columns, puts the `v2`, `v3` and `v4` values out to a list of lists (row by row) and creates the new column `v6`.

Problem

Consider the following `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 ``` For each row, I want to add the values of `v2`, `v3`, `v4` to a list and multiply the values in the list with `v5` and put the result into a new column `v6` such that I end up with a `DataFrame` like this: ``` n v1 v6 0 1 [10, 15, 20] 1 1 [10, 15, 20] 2 1 [10, 15, 20] ``` How can I achieve this in Pandas?

Original source