IOSpec 类型#
基础输入输出规范#
- class BaseIOSpec[源代码]#
用于在文件中存储对象的抽象基类。
这个基类被IOSpec类继承,例如
PandasData和ModuleData, 并定义了子类之间共享的属性。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类可能是WindowsPath或PosixPath,具体取决于Python会话运行的平台。该属性也可作为设置器来设置路径。
str或任何类似路径的对象都可以使用。示例
在下面的代码中,
df是model中引用的 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的一个子类,用于将pandas的DataFrame或Series与文件关联一个
PandasData持有一个 pandas DataFrame 或 Series 对象, 并将其与一个文件关联,用于写入和读取该对象。PandasData只能通过UserSpace.new_pandas或Model.new_pandas创建。存储在
PandasData对象中的DataFrame或Series可以通过value属性或调用()方法访问。- Parameters:
path – 用于保存数据的文件路径。如果给出的是相对路径,则相对于模型文件夹。
data – 一个pandas DataFrame或Series。
filetype (
str) – 用于指定文件格式的字符串。 "excel" 或 "csv"
- path#
关联文件的路径,以pathlib.Path对象形式表示。 参见
BaseIOSpec.path。
版本0.18.0中的变更:移除了
expose_data参数。
- property PandasData.value#
对象中持有的pandas DataFrame或Series
- property PandasData.sheet#
数据写入的工作表名称
模块数据#
- class ModuleData(module=None)[源代码]#
BaseIOSpec的一个子类,用于将用户模块与其在modelx中的源文件关联起来ModuleData是通过UserSpace.new_module或Model.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_range或UserSpace.new_excel_range方法来创建。ExcelRange是BaseIOSpec抽象类的子类。iospecs属性列出了 Model 中包含的所有BaseIOSpec实例,包括ExcelRange对象。在0.9.0版本中新增。