全部文档
文档中心财务模型deepcubedeepcube语法取数

取数

deepcube可以使用.to_dataframe()方法来返回一个pandas的DataFrame对象,之后使用方可以对这个二维数组进行一系列自定义操作。

to_dataframe可以基于loc的结果进行转换。起到了带过滤条件取数的效果。

但是需要注意的是,to_dataframe()方法返回的DataFrame只是原始数据的副本,对这个DataFrame进行的数据修改不会影响deepcube中的数据。

取数时如果维度的范围包括动态汇总的父级节点,那么该父级节点的数值也会被取到。

在对取出的DataFrame进行各种业务操作后,如果有需要,可以使用assign_dataframe()函数将最终计算结果的DataFrame可以重新写回deepcube,这批写回的数据可以参与后续loc计算,并且会随submit_calc一同提交至系统财务模型中。

需要注意的是,assign_dataframe()函数中写回的df需要保证数据中维度成员的准确性,并且df需要保持全部维度字段+一列数值decimal_val的格式。如果df里的数值字段名不是decimal_val,可以使用data_column参数指定df中的数值列的列名。

Copy
cube1 = deepcube('cube1')

# 取出当前cube中value['EntityCurrency'], Entity['EC01']下,data小于0的数据,并转换为df
df = cube1.loc[value['EntityCurrency'], Entity['EC01']].loc[cube1.data<0].to_dataframe()

# 取出df后可以做各种数据操作
...

# df操作结束后,如果有需要,可以将新的df写回deepcube的内存数据中
cube1.assign_dataframe(df)
# 如果最终df里的数值字段名不是decimal_val,可以使用data_column参数指定df中的数值列的列名
cube1.assign_dataframe(df, data_column='data')

回到顶部

咨询热线

400-821-9199

我们使用 ChatGPT,基于文档中心的内容以及对话上下文回答您的问题。

ctrl+Enter to send