Skip to main content
 首页 » 编程设计

python之将随机列乘以另一列

2025年05月04日15qq号

我有一个由 df 的随机 header 名称填充的列表。

listado=['A','J'] 

listado 只能有 1 个值。

如果 listado 有值,那么我希望它将 df 中的这些列乘以另一个数据框,该数据框由名为 valores 的 1 列组成。

valores=df2.values 
 
df2= 
   value 
0    2  
1    4   
2    3 

df如下:

df= 
    A  B  C  J  K 
0   3  2  5  4  7   
1   5  5  5  5  5 
2   9  8  5  1  7 

然后所需的输出是将 A 和 J 列乘以 df2 的 values:

    A  B  C  J   K 
0   6  2  5  8   7   
1  20  5  5  20  5 
2  27  8  5  3   7 

我正在尝试这样的事情来乘以列表中获得的特定列:

if listado: 
    valores=df2.values 
    for units in listado: 
        df1[units]=df1[units]*valores 
 return df1 

但是它

 raise Exception('Data must be 1-dimensional') 

和我试过的一样:

if listado: 
    valores=df2.values 
    for i in range(len(listado)): 
        df1[listado[i]]=df1[listado[i]]*valores 
 return df1 

如何获得所需的输出?

请您参考如下方法:

在 axis=0 上使用条件 .loc 和 mul

In [496]: df.loc[:, listado] = df.loc[:, listado].mul(df2['value'], axis=0) 
 
In [497]: df 
Out[497]: 
    A  B  C   J  K 
0   6  2  5   8  7 
1  20  5  5  20  5 
2  27  8  5   3  7