pandas的DataFrame转存MATLAB的mat格式

news2024/11/24 1:35:01

有的时候需要把 pandas 处理好的 DataFrame 进一步交给MATLAB来处理。当然可以保存成 excel 文件,不过当数据量比较大的时候,读取比较慢,这个时候转存成 MATLAB 可读的 mat 文件更合适(MATLAB 能快速读取)。

标准的操作就是 sio.savemat('filename.mat', {name: col.values for name, col in df.items()})

但需要注意两个问题。

DataFrame 里面不要有中文

>>> import pandas as pd
>>> from scipy import io as sio
>>> df = pd.DataFrame({'姓名': ['Mike', 'Jelly'], '年龄': [12, 13]})
>>> df
Out[5]: 
      姓名  年龄
0   Mike  12
1  Jelly  13
>>> sio.savemat('tmp.mat', {name: col.values for name, col in data_.items()})
Traceback ...
...
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 0-1: ordinal not in range(256)

如果出现中文会出现编码问题。建议改成英文。

Dataframe 中日期变量的存储

日期是不能直接存到 mat 文件中的,必须先转换成字符串再存。转字符串有两种方式。

  1. df['time'] = df['time'].astype('str') 。这是比较推荐的方式,按照上述代码转存 mat 文件不会有任何问题。

  2. df['time'] = df['time'].astype('string')。不推荐这种方式,此时 data['time'].values 就不是 ndarray 类型了,而变成了 StringArray 类型,这个是 pandas 特有的类型,转存到 mat 会无法识别,变成一堆浮点数。用这种方式转存时,这一列不能用 col.values,而应该用 col.to_list() 转换成列表储存。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/752669.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

接口自动化测试的最佳工程实践 (ApiTestEngine)

目录 前言: 背景 核心特性 特性拆解介绍 写在后面 前言: 接口自动化测试是现代软件开发中不可或缺的一环。一个良好的测试框架和最佳工程实践可以提高测试效率和质量。 背景 当前市面上存在的接口测试工具已经非常多,常见的如Postman…

建筑结构健康监测常见问题及解决措施

建筑结构健康监测(SHM)是指利用无损传感技术,通过对结构特性进行分析,达到检测结构损伤或退化的目的,是当前守护建筑安全的一种新型技术手段,通过建筑结构健康监测管理者可以直观的了解到建筑物的健康状态,为建筑维护和…

【力扣算法13】之 12. 整数转罗马数字 python

文章目录 问题描述示例1示例2 示例 3:示例 4:示例 5:提示 思路分析代码分析完整代码详细分析运行效果截图调用示例运行结果 完结 问题描述 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符数值I1V5X…

AP5193 DC-DC宽电压LED降压恒流驱动器 LED电源驱动IC

产品 AP5193是一款PWM工作模式、外围简单、内置功率MOS管,适用于4.5-100V输入的高精度降压LED恒流驱动芯片。电流2.5A。AP5193可实现线性调光和PWM调光,线性调光脚有效电压范围0.55-2.6V.AP5193 工作频率可以通过RT 外部电阻编程来设定,同时…

centos环境搭建nsq集群

简言 1. nsq是go语言开发的实时的分布式消息处理平台,目的是用来大规模地处理每天数以十亿计级别的消息。它具有分布式和去中心化拓扑结构,该结构具有无单点故障、故障容错、高可用性以及能够保证消息的可靠传递的特征 2. nsq官网地址 NSQ Docs 1.2.1 …

【详解】C语言冷门知识点之--位段

文章目录 一, 位段的解释二, 位段的声明和使用位段的声明:位段的使用: 三,位段的空间大小计算第一个例子:第二个例子:注意: 四, 位段的内存分配五,位段的跨平…

@Autowired 到底是怎么把变量注入进来的?

文章目录 1. Bean 的创建2. populateBean3. postProcessProperties3.1 findAutowiringMetadata3.2 inject3.3 doResolveDependency 4. 时序图 在 Spring 容器中,当我们想给某一个属性注入值的时候,有多种不同的方式,例如可以通过构造器注入、…

C++ string类型的基本使用方法

目录 1.定义和初始化string对象 2.string对象上的常用操作 在C中string是用来处理可变长字符串的,是C标准库中提供的类型,使用起来十分方便。同时C也支持C语言的字符数组来表示字符串。使用时记得包含string头文件。 1.定义和初始化string对象&#xf…

讨论下相亲交友小程序介绍红娘系统搭建的功能有哪些

首页内容 同城会员,VIP会员,线下会员,热文推荐,恋爱话术,爱情故事,恋爱宝典,相亲宝典,浪漫约会,相亲活动,地区、年龄筛选,用户动态,用…

(简单)剑指Offer || 056. 二叉搜索树中两个节点的和 Java

方法一:深度优先搜索哈希表 使用深度优先搜索的方式遍历整棵树,用哈希表记录遍历过的节点的值 对于一个值为x的节点,检查哈希表中是否存在k-x即可。如果存在对应的元素,那么我们就可以在该树上找到两个节点的和为k;否…

Idea 修改默认 Maven 为自己的

每次我们打开新项目时,都要去配置一遍 maven,很麻烦,其实可以去修改 idea 里面默认的 maven 配置,这样后面不管是打开新项目还是老项目,就都是用的自己的 maven 了. 1.文件->新项目设置->新项目的设置 File->Other Settings -> Settings for New Project 2.然后和…

【Unity开发必备】100多个 Unity 学习网址 资源 收藏整理大全【持续更新】

Unity 相关网站整理大全 众所周知,工欲善其事必先利其器,有一个好的工具可以让我们事半功倍,有一个好用的网站更是如此! 但是好用的网站真的太多了,收藏夹都满满的(但是几乎没打开用过😁)。 所以本文是对…

eclipse : sun.misc.BASE64Encoder找不到jar包的解决方法

sun.misc.BASE64Encoder找不到jar包 比较好的解决办法 按顺序依次操作: Windows -> Preferences -> Java -> Compiler -> Errors/Warnings。再按照顺序依次: Deprecated and trstricted API -> Forbidden reference (access rules): -&g…

量子力学的实验验证:双缝实验和贝尔不等式

亲爱的读者, 欢迎回到我们的量子力学系列文章。在前几篇文章中,我们介绍了量子力学的起源、基本概念,以及叠加态、超级定位和量子纠缠等奇特现象。今天,我们将深入探讨量子力学的实验验证,重点介绍双缝实验和贝尔不等…

Android自定义圆环进度条/刻度仪表盘(单环单点带进度动画)

效果图: 1.自定义SleepDashBoardView /*** 睡眠刻度仪表盘*/ public class SleepDashBoardView extends View {private static final float START_ANGLE 135f;private static final float MAX_ANGLE 270f;private float progress 0;private float centerX;private float ce…

ValueError: check_hostname requires server_hostname怎么解决?

背景: 想使用pip安装某一个包。结果报错如上图绿框所示。 解决方法: 把代理(梯子)关掉就行了。

数据库应用:MySQL事务、存储引擎

目录 一、理论 1.事务 2.MySQL 存储引擎 二、实验 1.事务隔离级别 2.事务控制语句 三、总结 一、理论 1.事务 (1)概念 ① 事务是一种机制、一个操作序列,包含了一组数据库操作命令,并且把所有的命令作为一个整体一起向系…

XUbuntu22.04之解决ThindPad P15V风扇狂转的问题(一百八十三)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

深度学习标量、向量、矩阵、张量之间的区别与联系

文章目录 前言1、张量**注意**: 2、**标量** (scalar):0阶的张量,0个轴,一个单独的数(整数或实数);3、**向量**(vector):1阶的张量,也叫矢量,1个轴,一个数组;…

elasticsearch学习入门+实战

学习链接1 基础概念 官网学习:地址 基本命令 PS:使用Apifox测试 查询所有索引库 添加索引库 添加时,加入分词器 添加时,加入记录属性值 查询获取索引库 删除索引库 添加文档 必须要在添加文档值的时候用【_doc】&a…