博客
关于我
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/

你可能感兴趣的文章
MySQL 索引失效的 15 种场景!
查看>>
MySQL 索引深入解析及优化策略
查看>>
MySQL 索引的面试题总结
查看>>
mysql 索引类型以及创建
查看>>
MySQL 索引连环问题,你能答对几个?
查看>>
Mysql 索引问题集锦
查看>>
Mysql 纵表转换为横表
查看>>
mysql 编译安装 window篇
查看>>
mysql 网络目录_联机目录数据库
查看>>
MySQL 聚簇索引&&二级索引&&辅助索引
查看>>
Mysql 脏页 脏读 脏数据
查看>>
mysql 自增id和UUID做主键性能分析,及最优方案
查看>>
Mysql 自定义函数
查看>>
mysql 行转列 列转行
查看>>
Mysql 表分区
查看>>
mysql 表的操作
查看>>
mysql 视图,视图更新删除
查看>>
MySQL 触发器
查看>>
mysql 让所有IP访问数据库
查看>>
mysql 记录的增删改查
查看>>