我试图通过将0.25除以'权重'列来计算'因子'列,只要“权重”列中的值高于0.25,否则我想将其设置为1。
我有以下数据框,其中'Factor'列为预期输出:
Weight Factor
Date Symbol
1/1/2017 BTC 0.9 0.27
ETH 0.07 1
XRP 0.03 1
1/2/2017 BTC 0.8 0.31
ETH 0.07 1
XRP 0.03 1
这是我到目前为止所拥有的,但我无法将其设置为1。
df['Factor'] = 0.25/df['Weight'].loc[df['Weight']>0.25]
解决办法:一个快速的解决方案是适用。
df['Factor'] = df['Weight'].apply(lambda weight: 0.25 / weight if weight > 0.25 else 1)
对df ['weight']中的所有行应用迭代,并将它们中的每一行用作执行操作的匿名lambda函数的输入。
或者,您也可以将因子默认设置为1并获取代码。
df['Factor'] = 1
df['Factor'].loc[loc[df['Weight']>0.25]] = 0.25/df['Weight'].loc[df['Weight']>0.25]








暂无数据