Model.new_pandas#

Model.new_pandas(name, path, data, file_type=None, sheet=None, filetype=None)#

创建一个绑定到pandas DataFrame或Series的引用,关联一个新的PandasData对象。

该方法创建一个名为name的Reference,绑定到作为data传入的pandas DataFrameSeries,从pathfile_type及可选的sheet创建一个PandasData对象,并将其与pandas对象关联。

pandas对象可以通过常规赋值操作分配给References,例如space.x = df,但以这种方式分配的pandas对象会与其他Reference对象一起通过write()write_model()保存在二进制文件中。该方法允许通过write()write_model()将分配的pandas对象保存在单独的文件中,利用存储在关联的PandasData中的信息。

当模型保存时,DataFrameSeries会被写入到由path参数指定路径的文件中,文件格式由file_type参数指定。如果path是相对路径,则相对于模型文件夹进行解析。file_type可以取值为"excel"或"csv"。

如果为file_type指定"excel",pandas对象将被写入Excel文件。 path中的文件名必须包含".xlsx"、".xlsm"或".xls"扩展名。 可选参数sheet用于指定Excel文件中的工作表名称。 多个PandasData对象可以关联到同一个Excel文件, 只要它们的工作表名称各不相同。 如果为file_type指定"csv",pandas对象将被写入CSV文件。 一个文件中只能保存一个对象。

此方法内部使用 pandas.read_excel 函数和 to_excel 方法来读写Excel文件, 因此必须根据Excel文件类型安装相应的读写引擎。 有关Excel引擎所需的软件包,请参阅 pandas'文档

示例

以下脚本创建了一个示例数据框 df:

>>> index = pd.date_range("20210101", periods=3)

>>> df = pd.DataFrame(np.random.randn(3, 3), index=index, columns=list("XYZ"))

>>> df
                   X         Y         Z
2021-01-01  0.184497  0.140037 -1.599499
2021-01-02 -1.029170  0.588080  0.081129
2021-01-03  0.028450 -0.490102  0.025208

以下代码将上面创建的DataFrame赋值给space中名为x的Reference,同时创建一个PandasData对象:

>>> space.new_pandas("x", "Space1/df.xlsx", data=df, file_type="excel", sheet="df1")

>>> space.x
                   X         Y         Z
2021-01-01  0.184497  0.140037 -1.599499
2021-01-02 -1.029170  0.588080  0.081129
2021-01-03  0.028450 -0.490102  0.025208

>>> model.iospecs
[<PandasData path='Space1/df.xlsx' file_type='excel' sheet='df1'>]

当模型保存时,DataFrame会被写入一个名为df.xlsx的Excel文件,该文件位于model中的Space1文件夹下。

>>> model.write("model")    # `model` is the parent of `space`

当模型通过modelx.read_model()函数重新读取时, DataFrame会从文件中读取:

>>> model2 = mx.read_model("model", name="Model2")

>>> model2.Space1.x
                   X         Y         Z
2021-01-01  0.184497  0.140037 -1.599499
2021-01-02 -1.029170  0.588080  0.081129
2021-01-03  0.028450 -0.490102  0.025208
Parameters:
  • name (str) – 引用的名称

  • path – 用于保存Pandas对象的文件路径。如果给出的是相对路径,则相对于modelx的模型文件夹。

  • data – pandas DataFrame 或 Series

  • file_type – 表示文件格式的字符串。("excel"或"csv")

  • sheet (str, optional) – 如果file_type是"excel",则指定要写入对象的工作表名称。

版本0.20.0变更:

  • 添加了sheet参数,以允许将对象写入Excel文件中的多个工作表。

  • 参数 filetype 已被替换为 file_typefiletype 仍可使用但会触发弃用警告。

版本0.13.0变更:移除了expose_data参数。

版本0.13.0变更:新增expose_data参数。默认情况下, data会被直接赋值而非使用其PandasData对象

在0.12.0版本中新增。