Matlab数据转化至python端,并写入数据库
因工作原因,一些获取的行业数据以已知的结构体存储在.mat文件中,
现需要将其存储在数据库中并且能够灵活调用至python dataframe里进行操作
原数据的一个例子如下
目标如上:
然后是转化代码:
import scipy.io
data = scipy.io.loadmat(r'C:\Users\wenzhe.tian\Desktop\PTSimA\Doing\MC.mat')
import pandas as pd data.pop('__header__')
data.pop('__version__')
data.pop('__globals__')
vehicle_name=data.keys()
vehicle_name=list(vehicle_name) for i in vehicle_name:
df = pd.DataFrame(data[i][0])
try:
df=df.astype(float)
except:
for j in list(df):
try:
df[j]=df[j].astype(float)
except:
continue
# df[j]=df[j].astype(str)
if i==vehicle_name[0]:
df1=df;
else:
df1=pd.concat([df,df1],axis=0) df1['MC_name']=vehicle_name
df1['Tips']=df1['Tips'].map(str)+df1['tips'].map(str)
df1['Tips']=df1['Tips'].str.replace('nan','')
df1=df1.drop(['tips'],axis=1)
df1=df1.reset_index(); import numpy as np
# ndarray需转化为 字符
list_transfer=['Speed','Torque','eff','eff_current']
for i in list_transfer:
for j in range(len(df1)):
try:
df1[i][j]=df1[i][j].tostring();
except:
continue;
结果如下(df1):
然后用to_sql的方式将该dataframe 保存至本地sql数据库即可
一个难点是遇到struct结构体中包含mat的矩阵格式时,如下图:
所有参数为一个struct,但是data与acc作为结构体的一个单位,其数据是一个矩阵而非单个数值。因此需要继续处理:
data = scipy.io.loadmat(r'C:\Users\ext.wenzhe.tian\Desktop\PTSimA\Doing\CYCLE.mat',
mat_dtype=True,struct_as_record=True)#variable_names='CATC'
data.pop('__header__')
data.pop('__version__')
data.pop('__globals__') name=data.keys()
name=list(name)
ans_name={} for i in name:
df = pd.DataFrame(data[i][0])
try:
df=df.astype(float)
except:
for j in list(df):
try:
df[j]=df[j].astype(float)
df[j]=df[j].apply(lambda x:x[0][0])
except:
continue if i==name[0]:
df1=df;
else:
df1=pd.concat([df,df1],axis=0) ans_name[i]=pd.DataFrame(columns=['time[s]','veh_spd[km/h]','acc[m/s]'],
data={'time[s]':list(data[i][0,0]['data'][:,0]),
'veh_spd[km/h]':list(data[i][0,0]['data'][:,1]),
'acc[m/s]':list(data[i][0,0]['acc'][:,1])})
ans_name即针对其中的矩阵单独定义一个dataframe,再从导入的data数据中提取写入。结果除以上的dataframe外,还有另一个dataframe:
Matlab数据转化至python端,并写入数据库的更多相关文章
- Python操作pymysql写入数据库时的错误
错误一 InternalError: (pymysql.err.InternalError) (1366, "Incorrect string value: '\\xE6\\xAD\\xA3 ...
- php之将用户信息写入数据库
session高级应用将用户信息写入到数据库中 首先建立数据库表 在实验数据库sqldb中建立session表,用于存储数据 在根文件夹下建立须要用到的文件(重点是session,class.php这 ...
- python将excel数据写入数据库,或从库中读取出来
首先介绍一下SQL数据库的一些基本操作: 1创建 2删除 3写入 4更新(修改) 5条件选择 有了以上基本操作,就可以建立并存储一个简单的数据库了. 放出python调用的代码: 此处是调用dos 操 ...
- python——读取MATLAB数据文件 *.mat
鉴于以后的目标主要是利用现有的Matlab数据(.mat或者.txt),主要考虑python导入Matlab数据的问题.以下代码可以解决python读取.mat文件的问题.主要使用sicpy.io即可 ...
- python保存二维列表到txt文件,读取txt文件里面的数据转化为二维列表
源码: # 读文件里面的数据转化为二维列表 def Read_list(filename): file1 = open(filename+".txt", "r" ...
- Maya 与 Matlab 数据互联插件使用教程
实验室做网格处理方面的算法,写界面很麻烦,所以有了利用maya和matlab进行数据连通的念头,于是有了这个插件. 这个插件可以把maya的网格数据导入matlab之中,完成计算之后重新返回maya. ...
- 做量化模型Matlab、R、Python、F#和C++到底选择哪一个?
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室).是由美国mathworks公司发布的主要面对科学计算.可视化以及交互式程序设计的高科技计算环境.它将数 ...
- python操作三大主流数据库(14)python操作redis之新闻项目实战②新闻数据的展示及修改、删除操作
python操作三大主流数据库(14)python操作redis之新闻项目实战②新闻数据的展示及修改.删除操作 项目目录: ├── flask_redis_news.py ├── forms.py ├ ...
- python读取与写入csv,txt格式文件
python读取与写入csv,txt格式文件 在数据分析中经常需要从csv格式的文件中存取数据以及将数据写书到csv文件中.将csv文件中的数据直接读取为dict类型和DataFrame是非常方便也很 ...
随机推荐
- 查看Memcache运行状况
Memcache Memcache是danga.com的一个开源项目,它是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的Hash表,能够用来存储各种格式的数据. 查看当前的me ...
- 机器学习框架ML.NET学习笔记【3】文本特征分析
一.要解决的问题 问题:常常一些单位或组织召开会议时需要录入会议记录,我们需要通过机器学习对用户输入的文本内容进行自动评判,合格或不合格.(同样的问题还类似垃圾短信检测.工作日志质量分析等.) 处理思 ...
- Axure7.0注册码 Axure7.0序列号 Axure7.0License key
很多同学安装了Axure7.0,但找不到注册码(license key).以前网上流传的Axure6.5的注册码不能用了.下面整理几个可用的Axure7.0注册码分享给大家,祝大家使用愉快,做出更多牛 ...
- 汇编语言版本的HelloWorld
平台 macOS 工具 nasm clang 文件 main.asm extern _printf ; 这里调用系统的一个系统调用函数, _printf, 使用extern告诉链接器该label在其他 ...
- wcf_消息通信模式(下) 双工通讯
原文:[老老实实学WCF] 第十篇 消息通信模式(下) 双工 第十篇 消息通信模式(下) 双工 在前一篇的学习中,我们了解了单向和请求/应答这两种消息通信模式.我们知道可以通过配置操作协定的IsOne ...
- 关于安卓visualizer的用法
看别人显示播放wav文件显示频谱写的代码都是断断续续的,在这里我贴了完整的代码,给有需要的人做参考,显示频谱还没有完成,不知道怎么弄,已经可以得到byte[] fft数据了,参考别人的写法也可以开方取 ...
- oracle中scott用户下四个基本表SQL语句练习
--选择部门中30的雇员SELECT * from emp where DEPTNO=30;--列出所有办事员的姓名.部门.编号--采用内连接方式,也就是等值链接,也是最常用的链接SELECT ena ...
- 在spark2中的shell使用python3
在spark2中的shell使用python3 spark2.0.0中的python默认使用python2,可以通过以下两种方式之一使用python3: PYSPARK_PYTHON=python3 ...
- hibernate课程 初探单表映射1-1 第一章
本章内容: 1 什么是orm 2 hibernate简介 3 编写第一个hibernate小例子
- mysql用户常见操作
一, 创建用户: 命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明:username - 你将创建的用户名, host - 指 ...