有没有办法将一列熊猫乘以每隔一列并获得产品列表?



有没有办法将一列熊猫乘以每隔一列并得到产品总和的列表? 我会试着简要介绍我的问题让;s 假设我的数据集是

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 循环进行迭代,因为这确实会花费我的计算时间。 如果我缺少任何内容或信息不足,我一定会在通知上更新。

更通用的方法:

# 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())

最新更新