Python 按条件(数据帧)乘以一列的行列表

Python 按条件(数据帧)乘以一列的行列表,python,pandas,conditional-statements,multiplication,Python,Pandas,Conditional Statements,Multiplication,我想将列列表乘以一列,所以列列表=cols,但我只想乘以 name==“A”。列为“multi” 像这样的 df[cols]=df.loc[df["name"]=="A"]*df["multi"] 让我们做吧 m = ~df.columns.isin(["multi","name","col4"]) df.loc[df.name=='A', m] = (df.loc[df.n

我想将列列表乘以一列,所以列列表=cols,但我只想乘以 name==“A”。列为“multi”

像这样的

df[cols]=df.loc[df["name"]=="A"]*df["multi"]
让我们做吧

m = ~df.columns.isin(["multi","name","col4"])
df.loc[df.name=='A', m] = (df.loc[df.name=='A', m].mul(df.multi, axis=0))
df
Out[94]: 
   col1  col2  col3  col4 name  multi
0   2.8   5.6   9.8    14    A    1.4
1   7.5   5.0  15.0    11    A    2.5
2   4.0   4.0   9.0    22    V    1.6
3  11.0  13.2  24.2     8    A    2.2
试试这个

df.loc[df.name=='A', cols] = df[df.name=='A'].apply(lambda r:r[cols]*r['multi'], axis=1)
df.loc[df.name=='A', cols] = df[df.name=='A'].apply(lambda r:r[cols]*r['multi'], axis=1)