有没有办法将一列熊猫与另一列相乘并获得产品列表?

时间:2019-12-16 10:53:26

标签: python python-3.x pandas list dataframe

有没有办法将一列熊猫与另一列相乘并得到乘积和的列表? 我将简要介绍我的问题,让我们假设我的数据集是

Label  X   Y1  Y2
=================
abc    4   0   1
xyz    0   1   0
...    2   3   2
...    3   2   4
...    4   4   3
...    2   1   0 

我需要一个列表list_sum

list_sum = [sum(X*Y1), sum(X*Y2)]

将列X中的每个元素与列Y1中的对应元素相乘,并添加所有数字,与Y1相同。 在这种情况下,list_sum应该是

list_sum = [30, 32] 

但是我的要求是一个包含n列的数据帧,而无需使用for循环进行迭代,因为这确实会花费我的计算时间。 如果我缺少任何信息或信息不足,请确保在“通知”上进行更新。

1 个答案:

答案 0 :(得分:0)

更通用的方法:

# list of columns to be multiplied by X
columns = list(set(df.columns).difference("X"))
print(columns)

sum_list = [sum(df["X"]*df[i]) for i in columns]
print(sum_list)

修改

columns = list(set(df.columns).difference("X"))

df_ = df[columns].multiply(df["X"], axis="index")

print(df_.sum().tolist())