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程序员来说并不难,您能告诉我们您尝试了什么以及您在哪一点上遇到了困难吗?这样,你将学习并进一步进步。