gpt4 book ai didi

使用 scipy.io 将 python pandas 数据框转换为 matlab 结构

转载 作者:太空狗 更新时间:2023-10-30 02:59:57 26 4
gpt4 key购买 nike

我正在尝试使用 scipy.io 将 pandas 数据框保存到 matlab .mat 文件。

我有以下内容:

array1 = np.array([1,2,3])
array2 = np.array(['a','b','c'])
array3 = np.array([1.01,2.02,3.03])
df = DataFrame({1:array1, 2:array2,3:array3}, index=('array1','array2','array3'))
recarray_ = df.to_records()
## Produces:
# rec.array([('array1', 1, 'a', 1.01), ('array2', 2, 'b', 2.02),
# ('array3', 3, 'c', 3.03)],
# dtype=[('index', 'O'), ('1', '<i4'), ('2', 'O'), ('3', '<f8')])
scipy.io.savemat('test_recarray_struct.mat', {'struct':df.to_records()})

在 Matlab 中,我希望这会生成一个包含三个数组(一个 int、一个 char、一个 float)的结构,但它实际上生成的是一个包含另外 3 个结构的结构,每个结构包含四个变量; 'index', 1, '2', 3。尝试选择 1、'2' 或 3 时出现错误“变量结构 (1, 1).# 不存在”。

谁能解释预期的行为以及如何最好地将 DataFrame 保存到 .mat 文件?

最佳答案

同时,我正在使用以下解决方法。如果您有更好的解决方案,请告诉我:

a_dict = {col_name : df[col_name].values for col_name in df.columns.values}

## optional if you want to save the index as an array as well:
# a_dict[df.index.name] = df.index.values
scipy.io.savemat('test_struct_to_mat.mat', {'struct':a_dict})

关于使用 scipy.io 将 python pandas 数据框转换为 matlab 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30669137/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com