在 MATLAB 表格和 Pandas DataFrames 之间转换
MATLAB® Compiler SDK™ 支持在表格和 Pandas DataFrames 之间进行转换。此过程还会隐式地转换 DataFrame 或表中的数据。当 DataFrames 的索引为 datetime 对象时,DataFrames 也可以转换为时间表,反之亦然。要将 MATLAB 和 Python® 之间的其他数据类型进行转换,请参阅在 MATLAB 和 Python 之间传递数据。有关 MATLAB 表与 Pandas DataFrame 之间转换的示例,请参阅使用 MATLAB Compiler SDK 处理 Pandas DataFrames。
注意
MATLAB Compiler SDK 仅支持 DataFrames 的单级转换。它不支持递归嵌套。例如,您可以创建一个名为 df1 的 DataFrame,其中包含另一个名为 df2 的 DataFrame,并将其转换为表格。但是,如果 df2 包含另一个 DataFrame df3,则无法转换 df1。
将 DataFrames 转换为表格
下面的列表包含所有在 Pandas DataFrame 中包含时可转换为 MATLAB 表的数据类型。
| Python 数据类型 | NumPy 数据类型 | Pandas 数据类型 | 生成的 MATLAB 数据类型 |
|---|---|---|---|
numpy.float64 | pandas.Float64 | double | |
numpy.float32 | pandas.Float32 | single | |
numpy.uint8 | pandas.UInt8 | uint8 | |
numpy.uint16 | pandas.UInt16 | uint16 | |
numpy.uint32 | pandas.UInt32 | uint32 | |
numpy.uint64 | pandas.UInt64 | uint64 | |
numpy.int8 | pandas.Int8 | int8 | |
numpy.int16 | pandas.Int16 | int16 | |
numpy.int32 | pandas.Int32 | int32 | |
numpy.int64 | pandas.Int64 | int64 | |
numpy.complex64 | numpy.complex128 | complex (single, double) | |
bool | logical | ||
pandas.Categorical | categorical | ||
numpy.datetime64 | pandas.Timestamp | datetime | |
numpy.timedelta64 | pandas.Timedelta | duration | |
| object | string(如果数组的元素为字符串,否则不支持) | |
str | pandas.StringDtype | string | |
序列(例如: | cell | ||
dict | struct | ||
pandas.DataFrame | table | ||
带 datetime 的 pandas.DataFrame | timetable |
将表格转换为 DataFrames
下面的列表包含所有在 MATLAB 表中包含时,可转换为 Pandas DataFrame 的数据类型。
| MATLAB 数据类型 | 生成的 Numpy 或 Pandas 数据类型 |
|---|---|
double | numpy.float64 |
single | numpy.float32 |
uint8 | numpy.uint8 |
uint16 | numpy.uint16 |
uint32 | numpy.uint32 |
uint64 | numpy.uint64 |
int8 | numpy.int8 |
int16 | numpy.int16 |
int32 | numpy.int32 |
int64 | numpy.int64 |
complex (single) | numpy.complex64, |
complex(double) | numpy.complex128 |
logical | bool |
categorical | pandas.Categorical |
datetime | numpy.datetime64 |
duration | numpy.timedelta64 |
string | string,但整个系列的类型将为 object |
cellstr | string,但整个系列的类型将为 object |
cell | 结果类型因 |
struct |
|
dictionary |
|
table | pandas.DataFrame |
timetable | 带日期时间索引的 pandas.DataFrame |
另请参阅
主题
- Pass Data Between MATLAB and Python
- 在 Python 中使用 MATLAB 数组 (MATLAB Production Server)
- matlab Python 模块 (MATLAB Production Server)
- 调用打包的 MATLAB 函数 (MATLAB Production Server)