有条件地乘以 DataFrame 行中的值

las*_*lex 4 dataframe python-3.x pandas

这是一个示例数据框:

df = pd.DataFrame([[1,0.5,-0.3],[0,-4,7],[1,0.12,-.06]], columns=['condition','value1','value2'])
Run Code Online (Sandbox Code Playgroud)

我想应用一个函数,如果该行的“条件”列中的值等于 1,则将每行中的值(“value1”和“value2”)乘以 100,否则保持原样。

大概 .apply 与 lambda 函数的一些用法在这里可以工作,但我无法获得正确的语法。例如

df.apply(lambda x: 100*x if x['condition'] == 1, axis=1) 
Run Code Online (Sandbox Code Playgroud)

不管用

应用此操作后所需的输出将是:

在此输入图像描述

WeN*_*Ben 7

就像这样简单

df.loc[df.condition==1,'value1':]*=100
Run Code Online (Sandbox Code Playgroud)