UserSpace.new_pandas#
- UserSpace.new_pandas(name, path, data, file_type=None, sheet=None, filetype=None)#
创建一个绑定到pandas DataFrame或Series的引用,关联一个新的
PandasData对象。该方法创建一个名为
name的Reference,绑定到作为data传入的pandas DataFrame或Series,从path、file_type及可选的sheet创建一个PandasData对象,并将其与pandas对象关联。pandas对象可以通过常规赋值操作分配给References,例如
space.x = df,但以这种方式分配的pandas对象会与其他Reference对象一起通过write()或write_model()保存在二进制文件中。该方法允许通过write()或write_model()将分配的pandas对象保存在单独的文件中,利用存储在关联的PandasData中的信息。当模型保存时,DataFrame或Series会被写入到由
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:
版本0.20.0变更:
添加了
sheet参数,以允许将对象写入Excel文件中的多个工作表。参数
filetype已被替换为file_type。filetype仍可使用但会触发弃用警告。
版本0.13.0变更:移除了
expose_data参数。版本0.13.0变更:新增
expose_data参数。默认情况下,data会被直接赋值而非使用其PandasData对象在0.12.0版本中新增。