将Pandas DataFrame中的列与DataFrame中的列列相结合

时间:2014-11-26 09:12:37

标签: python list pandas dataframe

考虑以下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

对于每一行,我想将v2v3v4的值添加到列表中,并将列表中的值与v5相乘并放入结果导入新列v6,以便最终得到DataFrame,如下所示:

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

我怎样才能在熊猫中实现这一目标?

1 个答案:

答案 0 :(得分:19)

你可以这样做一行:

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

这会进行相关的列乘法,将v2v3v4值放到列表列表中(逐行)并创建新列{{1 }}