首页 > 解决方案 > 如何在熊猫数据框中乘以一组列

问题描述

我有一个熊猫数据框和一个列表,如下所示。

cols = ['n1', 'n2']

item n1 n2 n3
item1 1 2  5
item2 2 3  3
item3 1  1  1

我想将选定的列相乘cols并将其作为单独的列添加到数据框中。IE,

item n1 n2 n3 multiplication
item1 1 2  5        2
item2 2 3  3        6
item3 1  1  1       1

我尝试使用multiply如下功能来做到这一点。 df[n1].multiply(df[n2])

但是,当只有 2 时,这很容易columns。假设我在cols列表中有很多列(例如,cols = ['n1', 'n2', 'n3', 'n4', 'n5'])。如何在熊猫中有效地进行这种乘法?也许使用一行代码。

如果需要,我很乐意提供更多详细信息。

标签: pandas

解决方案


使用产品

cols = ['n1','n2', 'n3']
df['multiplication'] = df[cols].prod(axis=1)

prodproduct为提供的轴提供值。

在这种情况下,cumprod不是正确的选择,因为它提供cumulative product然后获取last column结果,这是额外的计算


推荐阅读