IOSpec 类型#

基础输入输出规范#

class BaseIOSpec[源代码]#

用于在文件中存储对象的抽象基类。

这个基类被IOSpec类继承,例如 PandasDataModuleData, 并定义了子类之间共享的属性。 Model.get_spec方法返回 与模型中引用的给定对象相关联的IOSpec对象。 Model.iospecs返回一个列表, 包含模型中引用的所有对象相关联的IOSpec

示例

以下代码返回模型中引用的DataFrame df关联的PandasData对象:

>>> model.get_spec(df)
<PandasData path='df.xlsx' file_type='excel' sheet='df1'>

以下代码返回与模型中引用的对象相关联的所有IOSpec对象列表:

>>> model.iospecs
[<PandasData path='df.xlsx' file_type='excel' sheet='df1'>,
 <PandasData path='df.xlsx' file_type='excel' sheet='s1'>,
 <ModuleData path='mod1.py'>]

在0.20.0版本中变更:BaseDataSpec重命名为BaseIOSpec

版本0.18.0变更:移除了is_hidden参数。

版本0.18.0变更:BaseDataClient更名为BaseDataSpec

property BaseIOSpec.path#

对象写入的文件路径。

该属性定义在BaseIOSpec中,当模型通过write()方法保存时,它返回对象被写入的文件路径。返回的路径是Python标准库中pathlib模块定义的Path类的实例。Path类可能是WindowsPathPosixPath,具体取决于Python会话运行的平台。

该属性也可作为设置器来设置路径。 str 或任何类似路径的对象都可以使用。

示例

在下面的代码中,dfmodel 中引用的 DataFrame, 且 IPython 会话运行在 Windows 系统上。 该 DataFrame 被保存在模型文件夹中名为 df.xlsx 的 Excel 文件里:

>>> model.get_spec(df).path
WindowsPath('df.xlsx')

下一个任务将文件路径更改为模型文件夹下的files/df2.xlsx

>>> model.get_spec(df).path = 'files/df2.xlsx'

>>> model.get_spec(df).path
WindowsPath('files/df.xlsx')

另请参阅

Pandas数据#

class PandasData(data, sheet=None)[源代码]#

BaseIOSpec的一个子类,用于将pandasDataFrameSeries与文件关联

一个 PandasData 持有一个 pandas DataFrameSeries 对象, 并将其与一个文件关联,用于写入和读取该对象。

PandasData只能通过 UserSpace.new_pandasModel.new_pandas创建。

存储在PandasData对象中的DataFrameSeries可以通过value属性或调用()方法访问。

Parameters:
  • path – 用于保存数据的文件路径。如果给出的是相对路径,则相对于模型文件夹。

  • data – 一个pandas DataFrame或Series。

  • filetype (str) – 用于指定文件格式的字符串。 "excel" 或 "csv"

path#

关联文件的路径,以pathlib.Path对象形式表示。 参见BaseIOSpec.path

filetype#

"excel" 或 "csv"。

Type:

str

版本0.18.0中的变更:移除了expose_data参数。

property PandasData.value#

对象中持有的pandas DataFrame或Series

property PandasData.sheet#

数据写入的工作表名称

模块数据#

class ModuleData(module=None)[源代码]#

BaseIOSpec的一个子类,用于将用户模块与其在modelx中的源文件关联起来

ModuleData 是通过 UserSpace.new_moduleModel.new_module 创建的,当用户模块被分配给一个引用时。该 ModuleData 会被赋给模块的 _mx_dataclient 属性。

在版本0.13.0中添加。

property ModuleData.value#

对象中持有的模块

ExcelRange#

class ExcelRange(range_, sheet=None, keyids=None)[源代码]#

用于访问Excel范围的映射类

ExcelRange是一个类似字典的对象,用于表示Excel文件中的一个区域。用户可以通过下标运算符[]从该区域读取值或向其写入值。ExcelRange是一个映射类,因此实现了所有的映射方法和操作。

ExcelRange对象只能通过 Model.new_excel_rangeUserSpace.new_excel_range 方法来创建。

ExcelRangeBaseIOSpec 抽象类的子类。 iospecs 属性列出了 Model 中包含的所有 BaseIOSpec 实例,包括 ExcelRange 对象。

在0.9.0版本中新增。