将Pandas DataFrame中的列合并为DataFrame中列表的一列

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

我该如何在Pandas中实现这个?

1个回答

27

你可以像这样一行代码搞定:

>>> 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的数值放入一个列表中(按行排列),并创建新列v6


如何对值进行排序,然后放入列表中? - user3701435

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接