问答交流

datasource和dataframe,以及可缓存的数据范围

由nature023创建,最终由small_q 被浏览 29 用户

我自定义个一个python模块,从全市场的股票中选出return_5,最小的5只股票。在自定义模块中操作DataFrame后,出现警告:

[2023-01-08 15:37:00.236854] WARNING: modulecache: 返回的Outputs实例(size=5813378) 过大,将不会被缓存。

后续的回测模块出现错误:

[2023-01-08 15:45:40.988871] ERROR: moduleinvoker: module name: trade, module version: v4, trackeback: IndexError: list index out of range

问题:1.为什么操作DataFrame后Outputs的size会有581万多,而我查看原始的output_1,是一个

58375 rows × 5 columns的DataFrame,这么这里的提示变成了(size=5813378)

2.<IndexError: list index out of range>这个错误是由那条语句引起的?还是整体时间类型的问题,没有明确提示定位。另外,我发现系统很多模块的时间类型是datasoure,它和dataframe的主要区别是什么?

初学python,刚了解平台,还请高手指点,谢谢!

https://bigquant.com/experimentshare/08cbeef3d9784799a990193c396eedba

\

标签

dataDataSource函数
评论
  • 转成DataSource类型,在输出DataSource.write_df(df),报错的问题是超过了最大索引,检查一下逻辑。
  • 回测模块中,我即使把主函数和数据预处理函数的代码全部删除,仍然提示索引超出范围。但是,如果我在代码列表模块中只指定10只股票,则不再提示这个错误。我想问的是,自定义模块输出5万多行数据,是不是导致回测模块出现“索引超出范围”的原因。提示信息没有明确指出是哪里的索引超出了范围。谢谢!
{link}