我正在尝试结合以下逻辑
在A列中,其中B列=堆栈,然后是A列* 100,否则保持A列不变。
df['Value'] = np.where(df['columnB'] = 'Stack', df['Value'] * 100)
为什么我在这里得到SyntaxError: keyword can't be an expression
?
答案 0 :(得分:1)
您必须提供一个条件和二元条件的两个结果
在不了解您的情况下,dataframe
我相信您应该做以下事情:
df['Value'] = np.where(df['columnB'] == 'Stack', df['columnA']*100, df['Value'])
这是因为在documentation中声明:
numpy.where(condition[, x, y])
Return elements chosen from x or y depending on condition.
Parameters:
condition : array_like, bool
Where True, yield x, otherwise yield y.
因此,如果df['Value']
为columnA
,columnB
将以'Stack'
乘以100,否则,它将保留存储在Value
上的值>