有没有办法将一列熊猫与另一列相乘并得到乘积和的列表? 我将简要介绍我的问题,让我们假设我的数据集是
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循环进行迭代,因为这确实会花费我的计算时间。 如果我缺少任何信息或信息不足,请确保在“通知”上进行更新。
答案 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())