3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
您好!出现这个提示不是您的代码有问题,而是聚宽(JoinQuant)底层库的代码引发的警告。
这是一个警告(Warning)而非错误(Error)
日志中明确标明了 WARNING 和 UserWarning。这意味着程序并没有崩溃或停止运行,只是 Python 的 Pandas 库在提醒开发者某段代码的写法不推荐。
报错指向了聚宽的底层代码
从日志路径 /tmp/jqcore/jqdata/jqdata/apis/db.py:352 可以看出,触发警告的代码位于聚宽的 jqdata 核心库中。当您开启 set_option("avoid_future_data", True) 时,底层引擎在过滤未来数据时执行了这行代码。
Pandas 链式布尔索引问题
引发警告的具体代码是:
pub_date_df[pub_date_df['actual_unlimited_date']==convert_date(row.day)][pub_date_df['code']==row.code]
在较新的 Pandas 版本中,连续使用两个中括号进行布尔索引(即链式索引)会触发 Boolean Series key will be reindexed 警告。规范的写法应该是使用 & 符号连接两个条件:
pub_date_df[(pub_date_df['actual_unlimited_date']==convert_date(row.day)) & (pub_date_df['code']==row.code)]
initialize 函数中加入 Python 的 warnings 模块来屏蔽此类警告(不过通常不建议屏蔽所有警告,以免漏掉重要信息):import warnings
warnings.filterwarnings('ignore', category=UserWarning, module='pandas')
jqdata/apis/db.py 中的 Pandas 语法。