因工作原因,一些获取的行业数据以已知的结构体存储在.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端,并写入数据库的更多相关文章

  1. Python操作pymysql写入数据库时的错误

    错误一 InternalError: (pymysql.err.InternalError) (1366, "Incorrect string value: '\\xE6\\xAD\\xA3 ...

  2. php之将用户信息写入数据库

    session高级应用将用户信息写入到数据库中 首先建立数据库表 在实验数据库sqldb中建立session表,用于存储数据 在根文件夹下建立须要用到的文件(重点是session,class.php这 ...

  3. python将excel数据写入数据库,或从库中读取出来

    首先介绍一下SQL数据库的一些基本操作: 1创建 2删除 3写入 4更新(修改) 5条件选择 有了以上基本操作,就可以建立并存储一个简单的数据库了. 放出python调用的代码: 此处是调用dos 操 ...

  4. python——读取MATLAB数据文件 *.mat

    鉴于以后的目标主要是利用现有的Matlab数据(.mat或者.txt),主要考虑python导入Matlab数据的问题.以下代码可以解决python读取.mat文件的问题.主要使用sicpy.io即可 ...

  5. python保存二维列表到txt文件,读取txt文件里面的数据转化为二维列表

    源码: # 读文件里面的数据转化为二维列表 def Read_list(filename): file1 = open(filename+".txt", "r" ...

  6. Maya 与 Matlab 数据互联插件使用教程

    实验室做网格处理方面的算法,写界面很麻烦,所以有了利用maya和matlab进行数据连通的念头,于是有了这个插件. 这个插件可以把maya的网格数据导入matlab之中,完成计算之后重新返回maya. ...

  7. 做量化模型Matlab、R、Python、F#和C++到底选择哪一个?

    MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室).是由美国mathworks公司发布的主要面对科学计算.可视化以及交互式程序设计的高科技计算环境.它将数 ...

  8. python操作三大主流数据库(14)python操作redis之新闻项目实战②新闻数据的展示及修改、删除操作

    python操作三大主流数据库(14)python操作redis之新闻项目实战②新闻数据的展示及修改.删除操作 项目目录: ├── flask_redis_news.py ├── forms.py ├ ...

  9. python读取与写入csv,txt格式文件

    python读取与写入csv,txt格式文件 在数据分析中经常需要从csv格式的文件中存取数据以及将数据写书到csv文件中.将csv文件中的数据直接读取为dict类型和DataFrame是非常方便也很 ...

随机推荐

  1. OpenStack Weekly Rank 2015.07.20

    Module Reviews Drafted Blueprints Completed Blueprints Filed Bugs Resolved Bugs Cinder 8 1 3 9 10 Sw ...

  2. maven安装,使用说明,及maven Repository如何使用.

    maven的使用方法总结一下 1.首先去apache官网下载maven, http://maven.apache.org/download.cgi2.如果是windows系统,选择 apache-ma ...

  3. Response.Redirect 打开新窗口的两种方法

    一般情况下,Response.Redirect 方法是在服务器端进行转向,因此,除非使用 Response.Write("<script>window.location='htt ...

  4. 解决mac下安装yeoman时没有权限问题

    在mac下安装yeoman经常会出现如下图错误: 解决办法:在命令行执行-- sudo chown -R $USER /usr/local/lib/node_modules 回车就OK

  5. 《C#高效编程》读书笔记06-理解几个等同性判断之间的关系

    当创建自定义类型时(无论是class还是struct),应为类型定义"等同性"的含义.C#提供了4种不同的函数来判断两个对象是否"相等": public sta ...

  6. 导入maven多模块项目 出现的问题

    近日导入maven多模块项目 出现的问题以及解决过程2017年12月04日 20:43:04 守望dfdfdf 阅读数:815 标签: jdkmavenmaven pom.xml 更多个人分类: 工作 ...

  7. 【迷你微信】基于MINA、Hibernate、Spring、Protobuf的即时聊天系统:5.技术简介之Hibernate

    目录 序言 配置 hibernate.cfg.xml配置文件 加载hibernate.cfg.html配置文件并获取Session 对象的注解配置 增删改查 具体的增删改查代码 数据库操作的封装 连接 ...

  8. spring boot 下 spring security 自定义登录配置与form-login属性详解

    package zhet.sprintBoot; import org.springframework.beans.factory.annotation.Autowired;import org.sp ...

  9. 完全卸载TeamViewer与重新安装TeamViewer 7(含单文件版V12主控端)

    卸载teamviewer: 删除:%AppData%\Teamviewer.%tmp%\TeamViewer.C:\Users\Administrator\AppData\Local\TeamView ...

  10. HDU汉诺塔系列

    这几天刷了杭电的汉诺塔一套,来写写题解. HDU1207 汉诺塔II HDU1995 汉诺塔V HDU1996 汉诺塔VI HDU1997 汉诺塔VII HDU2064 汉诺塔III HDU2077  ...