SettingWithWarning报警引起的收益计算错误问题
来源:3-7 模拟股票交易:计算累计收益率

autista
2021-03-30
视频中计算单次收益率函数写法导致SettingWithWarning警告,可能会有N次的单次计算结果没有写入data,按照官方文档应该用.loc方法,应该是:
def calculate_prof_pct(data):
data.loc[data['signal'] != 0, 'profit_pct'] = (data['close'] - data['close'].shift(1)) / data['close'].shift(1)
# 视频写法是
# data = data[data['signal'] != 0]
# data['profit_pct'] = (data['close'] - data['close'].shift(1)) / data['close'].shift(1)
# ----这样会引起SettingWithWarning
data = data[data['signal'] == -1]
return data
这样就不会报SettingWithWarning,最终计算结果是:
收益与视频写法数据相差较大
写回答
3回答
-
wangjian6
2021-04-21
我也出现了两种写法最后的结果不一样的问题
00 -
simon_wyk
2021-04-07
你有发现是为什么吗?我也发现确实两个方法出来的结果不同的
012021-04-19 -
DeltaF
2021-03-30
好的,我来看下,有问题就改,感谢提示
012021-07-13
相似问题