np.where:“ SyntaxError:关键字不能是表达式”

时间:2019-11-01 20:27:57

标签: python

我正在尝试结合以下逻辑

在A列中,其中B列=堆栈,然后是A列* 100,否则保持A列不变。

df['Value'] = np.where(df['columnB'] = 'Stack', df['Value'] * 100)

为什么我在这里得到SyntaxError: keyword can't be an expression

1 个答案:

答案 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']columnAcolumnB将以'Stack'乘以100,否则,它将保留存储在Value上的值