dataframe中的Python多列

dataframe中的Python多列,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我当前的示例数据帧如下所示 将熊猫作为pd导入 从io导入StringIO s='''\ X1,X2,Y 5,8,1 8,9,1 3,6,1 7,7,1 1,3,1 ''' df=pd.read_csv(字符串) 看起来是: X1 X2 Y 0 5 8 1 1 8 9 1 2 3 6 1 3 7 7 1 4 1 3 1 我想乘和加如下:- a=等于(X1*y)之和-所有X1乘以该行中相应的y a=(5*1)+(8*1)+(3*1)+

我当前的示例数据帧如下所示

将熊猫作为pd导入
从io导入StringIO
s='''\
X1,X2,Y
5,8,1
8,9,1
3,6,1
7,7,1
1,3,1
'''
df=pd.read_csv(字符串)
看起来是:

   X1  X2  Y
0   5   8  1
1   8   9  1
2   3   6  1
3   7   7  1
4   1   3  1
我想乘和加如下:-

a=等于(X1*y)之和-所有X1乘以该行中相应的y

a=(5*1)+(8*1)+(3*1)+(7*1)+(1*1) =24

b=即(X2*y)之和-所有X2乘以该行中相应的y

最简单的方法是手动执行:

a=(5*1)+(8*1)+(3*1)+(7*1)+(1*1) =24
a = (df['X1'] * df['Y']).sum() # 24
b = (df['X2'] * df['Y']).sum() # 33
如果有许多列要乘以
Y
,则可能需要利用numpy的阵列广播:

(df[['X1', 'X2']] * df['Y'].values[:, None]).sum()
结果:

X1    24
X2    33
dtype: int64

最简单的方法是手动执行:

a = (df['X1'] * df['Y']).sum() # 24
b = (df['X2'] * df['Y']).sum() # 33
如果有许多列要乘以
Y
,则可能需要利用numpy的阵列广播:

(df[['X1', 'X2']] * df['Y'].values[:, None]).sum()
结果:

X1    24
X2    33
dtype: int64

你能发布给定玩具示例的预期输出吗?我对a的定义中“all”一词的用法感到困惑。“全部”是指列的总和吗?a=(5*1)+(8*1)+(3*1)+(7*1)+(1*1)=24@kate melnykovacan您在问题的末尾添加了一个数据框,显示了预期的输出请a是我的预期输出@Baxx这对许多python程序员来说并不难,您能告诉我们您尝试了什么以及您在哪一点上遇到了困难吗?通过这种方式,您将进一步学习和进步。您能否发布给定玩具示例的预期输出?我对a的定义中“all”一词的用法感到困惑。“全部”是指列的总和吗?a=(5*1)+(8*1)+(3*1)+(7*1)+(1*1)=24@kate melnykovacan您在问题的末尾添加了一个数据框,显示了预期的输出请a是我的预期输出@Baxx这对许多python程序员来说并不难,您能告诉我们您尝试了什么以及您在哪一点上遇到了困难吗?这样,你将学习并进一步进步。