@LHsu 在上边附加的回测中#8最后一部分也要相应修改,下面给的这个是我处理过市值中性化之后进行bp分位测试的代码,可以参考中间市值中性化的处理,与原文研究模块中部分代码基本上一致
```
if winsor == True:
#7 获得 winsor 数据
df_BP['BP_win'] = pd.DataFrame(winsorize(df_BP, 'BP', 2, have_negative))
for x in range(len(industries)):
# 生成均值数据
df_BP['BP_mean'][df_BP['industries_brief'] == industries[x][0]] \
= df_BP['BP_win'][df_BP['industries_brief'] == industries[x][0]].mean()
# 生成方差数据
df_BP['BP_std'][df_BP['industries_brief'] == industries[x][0]] \
= df_BP['BP_win'][df_BP['industries_brief'] == industries[x][0]].std()
df_BP['BP_ne'] = (df_BP['BP_win'] - df_BP['BP_mean'])/df_BP['BP_std']
else:
for x in range(len(industries)):
# 生成均值数据
df_BP['BP_mean'][df_BP['industries_brief'] == industries[x][0]] \
= df_BP['BP'][df_BP['industries_brief'] == industries[x][0]].mean()
# 生成方差数据
df_BP['BP_std'][df_BP['industries_brief'] == industries[x][0]] \
= df_BP['BP'][df_BP['industries_brief'] == industries[x][0]].std()
df_BP['BP_ne'] = (df_BP['BP'] - df_BP['BP_mean'])/df_BP['BP_std']
```
2017-07-20