fix(report): 修复 generate_legacy_report 重复日期导致的 reindex 失败
问题:nav_series 或 backtest_result.index 存在重复日期时, reindex() 抛出 'cannot reindex on an axis with duplicate labels' 修复: - 先检查并去除 nav_series 的重复日期 - 同时检查并去除 backtest_result.index 的重复日期 - 使用 duplicated(keep='last') 保留最后一条记录
This commit is contained in:
@@ -170,7 +170,14 @@ def run_with_legacy_report():
|
||||
else:
|
||||
continue
|
||||
# 对齐净值数据到回测日期(使用ffill处理日期差异)
|
||||
nav_aligned = nav_series.reindex(backtest_result.index, method='ffill')
|
||||
# 先去除重复日期
|
||||
if nav_series.index.has_duplicates:
|
||||
nav_series = nav_series[~nav_series.index.duplicated(keep='last')]
|
||||
# 确保 backtest_result.index 无重复
|
||||
target_index = backtest_result.index
|
||||
if target_index.has_duplicates:
|
||||
target_index = target_index[~target_index.duplicated(keep='last')]
|
||||
nav_aligned = nav_series.reindex(target_index, method='ffill')
|
||||
etf_nav_data_raw[idx_code] = nav_aligned.values
|
||||
|
||||
# 生成原引擎格式的报告
|
||||
|
||||
Reference in New Issue
Block a user