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)
我有一个数据框,其中一列为股票 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)