博客
关于我
Python:设定采样周期提取Excel数据
阅读量:781 次
发布时间:2019-03-24

本文共 1449 字,大约阅读时间需要 4 分钟。

1 博客内容

对于CANape采集的数据(MF4/MDF格式),调入Simulink或者AMEsim分析,由于CANape中各信号取样频率不一致,导致文件转化为CSV文件后需要分段提取数据。例如,原始采样频率为3ms和5ms,分析时统一使用0.01s步长,通过数据处理可以提升分析软件的效率。

2 数据提取

年前内部对软件进行白名单处理,偶然发现AMEsim库目录树中的HOT,编译时会调用Python.exe。而使用Python时无需单独安装,可以直接使用现成的Python环境进行操作。以下分享使用Python提取分段时间数值(设定采样周期)的源程序。

TSheet.csv文件

思路是,当某行第一列的数值大于0.01*m时,输出该行第二列的数值,同时m += 1。

源代码
"""    名称:  Translation.py    作者:  Morven_Xie    版本:  1.0    时间:  2020/3/19 20:08    功能:  定周期提起csv格式文件数据    简介:  每隔10ms提取一次数据    Email:  morven_xie@163.com"""# -*- coding:utf-8 -*-import csvfile = open("Data.csv", "w",newline='')    #不用newline时出现空行writer = csv.writer(file)writer.writerow(('Time(s)', 'Current(A)'))   #单独列时(["Current"])with open('C:\\Users\\Administrator\\Desktop\\Python\\TSheet.csv', 'r', encoding='gbk') as csvfile:    reader = csv.reader(csvfile)    j = 0    k = 0    for i, rows in enumerate(reader):        if i == j:            row = rows            j = j + 1            if float(row[0]) > abs(0.01 *k):                m = 0.01 *k                k += 1                print(row[1])                writer.writerow((m, row[1]))file.close()

输出结果展示如下:

Data.csv

CSV作为Python自带模块,不需要PIP安装即可使用。

相关注意事项

  • 确保CSV文件的第一列包含有效的时间戳
  • 周期正确设置为目标分析周期
  • 处理后的CSV文件需谨慎管理与原文件脱节

相关技术支持:morven_xie@163.com

转载地址:http://inekk.baihongyu.com/

你可能感兴趣的文章
Qt笔记——foreach与forever
查看>>
QT程序怎么挪到Linux下,linux+Qt程序如何打包发布
查看>>
Qt知识:视图框架QGraphicsWidget详解
查看>>
SpringBoot中项目启动及定时任务缓存数据库常用数据至内存变量并转换后高频调用
查看>>
Qt知识: 画刷风格
查看>>
QT的OpenGL渲染窗QOpenGLWidget Class
查看>>
QT的C++程序加载动态链接库DLL(Linux下是so)的方式
查看>>
QT界面操作1:如何跟踪鼠标位置?
查看>>
Qt环境搭建(Visual Studio)
查看>>
QT点击"X"按钮,调用closeEvent()函数来实现调用特定事件(附:粗略介绍QT的信号与槽的使用方法)...
查看>>
QT样式表——url路径
查看>>
QT数据库(三):QSqlQuery使用
查看>>
QT教程5:消息框
查看>>
SpringBoot中集成阿里开源缓存访问框架JetCache实现声明式实例和方法缓存
查看>>
pom.xml中提示web.xml is missing and <failonmissingw>...
查看>>
Pomelo开发中Web客户端开发API简介
查看>>
QT教程2:QT5的体系构架
查看>>
PON架构(全光网络)
查看>>
PoolingHttpClientConnectionManager原理剖析
查看>>
QT教程1:ubuntu18.04安装QT5
查看>>