pandas的DataFrame转存MATLAB的mat格式

有的时候需要把 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.hqwc.cn/news/22977.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Deepin/UOS Linux 桌面自定义 IDEA/DataGrip 应用程序图标

在 $HOME/Desktop目录下编辑 vim jetbrains.intelij.idea.desktop [Desktop Entry] TypeApplication NameIntelij IDEA Icon/opt/module/idea-IU-203.8084.24/bin/idea.png Exec/opt/module/idea-IU-203.8084.24/bin/idea.sh Terminalfalse CategoriesDevelopment;IDE;vim je…

计算机毕设 大数据电商用户行为分析及可视化

文章目录 1. 数据集说明2. 数据处理2.1 数据导入2.2 数据清洗 3.数据分析可视化3.1 用户流量及购物情况3.2 用户行为转换率3.3 用户行为习惯3.4 基于 RFM 模型找出有价值的用户3.5 商品维度的分析 4 最后 1. 数据集说明 这是一份来自淘宝的用户行为数据,时间区间为…

游戏如何应对虚拟定位问题

在游戏系统设计中,排行榜这一设计可谓是十分巧妙。它可以充分调动玩家的“胜负欲”,给予玩家前进的目标及动力,满足玩家的心理需求。 排行榜的设计使用范围广,对游戏留存、付费等指标提升效果出众,在不少游戏中都可以…

Vue-CodeMirror 使用

vue2 安装 npm install vue-codemirror -S # or yarn add vue-codemirror -S 全局配置&#xff0c;main.js文件引入 import VueCodemirror from vue-codemirror // import base style import codemirror/lib/codemirror.css Vue.use(VueCodemirror)Vue 文件内使用 <templ…

【运维】第03讲(上):Nginx 负载均衡常见架构及问题解析

实际上 Nginx 除了承担代理网关角色外还会应用于 7 层应用上的负载均衡&#xff0c;本课时重点讲解 Nginx 的负载均衡应用架构&#xff0c;及最常见的问题。 学前提示 Nginx 作为负载均衡是基于代理模式的基础之上&#xff0c;所以在学习本课时前&#xff0c;你需要对 Nginx …

LangChain大型语言模型(LLM)应用开发(四):QA over Documents

LangChain是一个基于大语言模型&#xff08;如ChatGPT&#xff09;用于构建端到端语言模型应用的 Python 框架。它提供了一套工具、组件和接口&#xff0c;可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。LangChain 可以轻松管理与语言模型的交互&#x…

一个HTTP的流程

1&#xff0c;键入一个URL后浏览器将URL进行解析 2,浏览器解析URL后&#xff0c;需要查询服务器域名对应的IP地址。 流程如下&#xff1a;查询缓存&#xff0d; >客户端发送DNS请求-> 根DNS&#xff0c;根DNS根据 .COM-> 顶级域名服务器&#xff0c;根据baidu->权…

C# Linq 详解四

目录 概述 二十、SelectMany 二十一、Aggregate 二十二、DistinctBy 二十三、Reverse 二十四、SequenceEqual 二十五、Zip 二十六、SkipWhile 二十七、TakeWhile C# Linq 详解一 1.Where 2.Select 3.GroupBy 4.First / FirstOrDefault 5.Last / LastOrDefault C# Li…

xxl-job的简单使用

xxl-job是一个分布式任务调度框架&#xff0c;在Spring中&#xff0c;提供有任务调度的注解功能&#xff0c;在之前的项目中&#xff0c;非分布式任务都可以直接使用Spring框架提供的Scheduled注解和EnableScheduling注解来实现定时任务。 EnableScheduling注解加载项目启动类上…

MySQL数据库基础 18

第18章_MySQL8其它新特性 1. MySQL8新特性概述1.1 MySQL8.0 新增特性1.2 MySQL8.0移除的旧特性 2. 新特性1&#xff1a;窗口函数2.1 使用窗口函数前后对比2.2 窗口函数分类2.3 语法结构2.4 分类讲解1. 序号函数2. 分布函数3. 前后函数4. 首尾函数5. 其他函数 2.5 小 结 3. 新特…

录音怎么转换成mp3格式?

录音怎么转换成mp3格式&#xff1f;将录音转换成MP3格式可以节省存储空间。通常&#xff0c;录音保存的文件格式是WAV等无损音频格式&#xff0c;这种音频格式相对于MP3格式占用的存储空间更大。将录音转换成MP3格式后&#xff0c;可以减小文件的大小&#xff0c;方便储存和传输…

cpuset.cpus.effective: no such file or directory (修改 docker cgroup 版本的方法)

要切换使用 v1 版 cgroup&#xff0c;需要做如下配置&#xff1a; vim /etc/default/grubGRUB_CMDLINE_LINUX"systemd.unified_cgroup_hierarchy0"update-grubreboot完美解决