Pandas 方法链:使用 df.assign() 重新分配列

Pandas Method chaining: reassigning a column using df.assign()

我有一个数据框,其中一列为股票 returns,另一列为策略值,另一列为布尔值交易(True,False)。

如果对应的布尔值为 True,我希望从策略列中的单元格中减去特定值 (tc),否则单元格保持不变。

这是我的代码:

data_1['strategy'][data_1['trades']]-= tc

运行良好。但是我更愿意使用链接的方法来使我的代码紧凑。

data_1.assign(strategy = lambda x: x['strategy'][x['trades']]-= tc)

此代码围绕 -= 抛出错误,表示

SyntaxError: invalid syntax

IIUC,你可以mask它:

data_1['strategy'] = data_1['strategy'].mask(data_1['trades'], data_1['strategy']-tc)