Pandas 数据帧上的条件操作

Pandas 数据帧上的条件操作,pandas,conditional-statements,Pandas,Conditional Statements,我一直在阅读有关在数据帧上执行条件操作的内容。给定col1的一个特定值,我想将col2中的值乘以col4中基于col1和第3列的值 我想我已经做到了一半-这对给定col1值的所有我想要操作的值执行一个操作,并将它们放在一个新列中: df.loc[df['col1'] == 'string1', 'newcol'] = (df['col2'] * 2 ) 但是我不想乘以2,而是想乘以数据帧中的另一个条件值。我可以在col4中选择该值并用以下代码显示: df.loc[(df['col1']=='

我一直在阅读有关在数据帧上执行条件操作的内容。给定col1的一个特定值,我想将col2中的值乘以col4中基于col1和第3列的值

我想我已经做到了一半-这对给定col1值的所有我想要操作的值执行一个操作,并将它们放在一个新列中:

df.loc[df['col1'] == 'string1', 'newcol'] = (df['col2'] * 2 ) 
但是我不想乘以2,而是想乘以数据帧中的另一个条件值。我可以在col4中选择该值并用以下代码显示:

df.loc[(df['col1']=='string1') & (df['col3']==value), ['col4']]
但它被显示为一个数据帧,我正试图提取这个值作为乘数。谢谢你的建议:)

#更新

我有以下工作,但似乎效率很低:

    norm1 = (df.loc[(df['col1']=='string1') & (df['col3']==value), 'col4'])
    norm  = norm1.to_numpy()[0]
    df.loc[df['col1'] == 'string1', 'newcol'] = (df['col2'] * (norm))

df.loc[(df['col1']='string1')和(df['col3']==value),['col4']]]
是一个具有单个值(1行1列)的数据帧吗?您能提供一些数据和预期输出的小样本吗?关于
norm=df.loc[(df['col1']='string1')和(df['col3']==value),'col4'][0]