问答交流

AIStudio3.0中的DataSource是否和Dataframe不能互转了?

由amengpp创建,最终由amengpp 被浏览 18 用户

BigTrader - 回测与交易引擎 文档中有如下描述,DataFrame和DataSource可以互转。当碰到一些SQL比较难处理的逻辑时,使用python代码处理,并转回DataSource即可。

DataFrame转DataSource

#创建DataFrame
df = pd.DataFrame([])

#将DataFrame转为DataSource
ds = DataSource.write_df(df)

DataSource转DataFrame

#例如某个模块为m1,将m1的输出转为DataFrame.
#将 m1模块内的data(DataSource)赋值给变量df
ds = m1.data

#将DataSource 转为 DataFrame
df = ds.read()


在新版中,这么做就会报错。那应该如何来做到python处理过的数据给后续模块使用,比如

m6 = M.stock_ranker_dai_train.v9(
    data=m2.data,
    learning_algorithm="""排序""",
    number_of_leaves=30,
    min_docs_per_leaf=1000,
    number_of_trees=20,
    learning_rate=0.1,
    max_bins=1023,
    feature_fraction=1,
    data_row_fraction=1,
    plot_charts=True,
    ndcg_discount_base=1,
    m_name="""m6"""
)

上面的m2已经被做过类似以下操作,

df = m2.data.read()

# 对df做一些处理

\

标签

AIStudio
评论
  • 可以通过ds = dai.DataSource.write_bdb(df)来实现,可以参照如下模板策略,我在抽取模块后面加了一个自定义python模块,先把抽取的数据读取成df,然后再转成dai的数据传给stockranker训练。
  • https://bigquant.com/codesharev2/5b252de6-b319-4662-8473-8f8da12e76c9
  • 谢了
{link}