原创内容第976篇,专注AGI+,AI量化投资、个人成长与财富自由。咱们对比了pandas,polars和duckdb加载分析大量csv的效率,无论在数据集比较小,还是比较大的情况下,polars的性能最好。有同学给我留言说,duckdb与parquet更合适。这里就不测试了。因为duckdb之前我还遇到过,如果有一个文件列匹配不上,整体查询会失败的情况。另外还有一个更重要的原因,就是咱们因子表达式引擎,也是基于polars开发的,因此,polars就是咱们数据加载和因子计算的基础框架。无论是规则型策略,还是多因子策略,我们都会在基础数据(基础因子)的基础上去计算衍生因子,这时候,需要一个因子表达式是非常方便的。首先load_bar_df函数,我们需要指定数据源,就是csv所在的目录,这里的目录可以是一个或多个。目录下的文件名是symbol.csv,我们指定要加载的列和行(日期范围),polars读取所有数据合成pl.dataframe。然后,我们调用因子表达式引擎,多进程的方式计算因子:from multiprocessing import freeze_support
from dataset.template import AlphaDataset
from load_bar_df import load_all_data_polars
if __name__ == '__main__':
freeze_support()
df = load_all_data_polars(
data_sources=["../data/csi300/history", "../data/csi300/inc"],
start_date="2012-01-01",
end_date="2025-12-31",
columns=["date", "symbol", "open", "high", "low", "close", "volume"]
)
print(df)
dataset = AlphaDataset()
dataset.add_feature('ts_delay_20', 'ts_delay(close,20)')
dataset.add_feature('ts_delay_2', 'ts_delay(close,2)')
dataset.prepare_data(df)
print(dataset.raw_df.to_pandas())
代码和数据下载:AI量化实验室——2025量化投资的星辰大海AI量化实验室 星球,已经运行三年多,1700+会员。
aitrader代码,因子表达式引擎、遗传算法(Deap)因子挖掘引擎等,支持vnpy,qlib,backtrader和bt引擎,内置多个年化30%+的策略,每周五迭代一次,代码和数据在星球全部开源。
点击 “查看原文”,直接访问策略集合。