首页 > 解决方案 > 在数据框中循环应用程序以查找输出

问题描述

我有以下数据:

dict={'A':[1,2,3,4,5],'B':[10,20,233,29,2],'C':[10,20,3040,230,238]...................}

df= pd.Dataframe(dict)

以这种方式,我有 20 列,每列中有 5 个数字条目,我希望有一个新列,其中的值应如下所示:

0      A[0]*B[0]+A[0]*C[0] + A[0]*D[0].......
1      A[1]*B[1]+A[1]*C[1] + A[1]*D[1].......
2      A[2]*B[2]+A[2]*B[2] + A[2]*D[2].......

我尝试了以下方式,但手动无法放置 20 列,所以我想知道如何应用循环来获得所需的输出

lst=[]
for i in range(0,5):
    j=df.A[i]*df.B[i]+ df.A[i]*df.C[i]+.......
    lst.append(j)
    i=i+1    

标签: python-3.xpandasdataframe

解决方案


一个潜在的解决方案如下。我只采用您发布的示例,但可以正常工作。你的数据是 df

   A    B     C
0  1   10    10
1  2   20    20
2  3  233  3040
3  4   29   230
4  5    2   238

D您可以通过首先对数据框进行子集化来创建一个新列

add = df.loc[:, df.columns != 'A'] 

然后按以下方式对D与列中的列的所有乘法求和:A

df['D'] = df['A']*add.sum(axis=1)

返回

   A    B     C     D
0  1   10    10    20
1  2   20    20    80
2  3  233  3040  9819
3  4   29   230  1036
4  5    2   238  1200

推荐阅读