Python 按条件(数据帧)乘以一列的行列表
我想将列列表乘以一列,所以列列表=cols,但我只想乘以 name==“A”。列为“multi” 像这样的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
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)