这是读取到的CAN数据段:x| 00 02 51 00 01 05 00 00

0 0 0 2 5 1 0 0 0 1 0 5 0 0 0 0
符号位  百位 十位 个位 .0 .00 符号位 百位 十位 个位 .0 .00
import  numpy as np
import pandas as pd
import csvff = "1611WORK28-1.csv"#最后处理完的数据存放的文件名#将TXT文件(提前使用notepad++转成UTF-8编码)转化为CSV数据格式并且将角度数据存储到column数列中
with open(ff, 'w') as f:f_csv = csv.writer(f)for line in open('temp.txt', 'r'):new_line = line.strip().split("\t")f_csv.writerow(new_line)
a = pd.read_csv(ff)
txtDF = pd.DataFrame(a)
txtDF.to_csv(ff,index= False)#读取CSV文件,并且将所需要处理的一整列存储在column列表中
with open(ff,'rt') as csvfile:reader = csv.reader(csvfile)column = [row[0] for row in reader]#print (column[0])#这个输出用来检测自己能否正常读取所需要的列i = 1#读取列表时从下标1开始,(下标0是Header,如果有的话)
j = len(column)-1#获取列表长度Roll_Data_lists = []#横滚角数据存储列表
Pitch_Data_lists = []#俯仰角数据存储列表#列表中的数据形式是字符串数字,需要把列表中字符串转化为单个字符数字,存储到Datas_char中,再使用map函数将其转化为整型数字
while i <= j:#str1 = "x| 00 00 13 00 00 04 00 00 "#原始字符串数据#这个用来测试整型数字的转化Datas = list(column[i])#将字符串转换为单个字符列表Datas_Char = []#单个字符存储列表#将Datas列表中的无用字符剔除后存储在Datas_Char中for data in Datas:if ('0'<= data <='9'):Datas_Char.append(data)#将字符串列表转换为整数列表Datas_Int = list(map(int, Datas_Char))#读取俯仰角各个位数据Sing_Figure_Pitch         = Datas_Int[0]#符号位正负号Bai_Figure_Pitch          = Datas_Int[1]#百位Shi_Figure_Pitch          = Datas_Int[2]#十位Ge_Figure_Pitch           = Datas_Int[3]#个位Point_One_Figure_Pitch    = Datas_Int[4]#小数点后一位Point_Two_Figure_Pitch    = Datas_Int[5]#小数点后二位#合并计算俯仰角大小储存在Pitch_Data中。Sing_Figure_Pitch为0,角度为正,为1,角度为负if Sing_Figure_Pitch:Pitch_Data = (Bai_Figure_Pitch*100 + Shi_Figure_Pitch*10 + Ge_Figure_Pitch + Point_One_Figure_Pitch*0.1 + Point_Two_Figure_Pitch*0.01)*(-1)else:Pitch_Data = (Bai_Figure_Pitch * 100 + Shi_Figure_Pitch * 10 + Ge_Figure_Pitch + Point_One_Figure_Pitch * 0.1 + Point_Two_Figure_Pitch * 0.01)Pitch_Data = round(Pitch_Data, 2)#数据精确到小数点后两位#print(Pitch_Data)#这个用来测试所需数据是否成功转化为整型并读取Pitch_Data_lists.append(Pitch_Data)#俯仰角存储到列表中#读取横滚角各个位数据Sing_Figure_Roll         = Datas_Int[6]#符号位Bai_Figure_Roll          = Datas_Int[7]#百位Shi_Figure_Roll          = Datas_Int[8]#十位Ge_Figure_Roll           = Datas_Int[9]#个位Point_One_Figure_Roll    = Datas_Int[10]#小数点后一位Point_Two_Figure_Roll    = Datas_Int[11]#小数点后二位#合并计算横滚角大小储存在Roll_Data中。Sing_Figure_Roll为0,角度为正;为1,角度为负if Sing_Figure_Roll:Roll_Data = (Bai_Figure_Roll*100 + Shi_Figure_Roll*10 + Ge_Figure_Roll + Point_One_Figure_Roll*0.1 + Point_Two_Figure_Roll*0.01)*(-1)else:Roll_Data = (Bai_Figure_Roll*100 + Shi_Figure_Roll*10 + Ge_Figure_Roll + Point_One_Figure_Roll*0.1 + Point_Two_Figure_Roll*0.01)Roll_Data = round(Roll_Data, 2)#print(Roll_Data)#这个用来测试所需数据是否成功转化为整型并读取Roll_Data_lists.append(Roll_Data)i = i + 1#这两个输出函数用来测试整型数字列表能否成功读取
#print(Pitch_Data_lists)
#print(Roll_Data_lists)#将横滚角,俯仰角两列数据加到原来的CSV文件中ngData = pd.read_csv(ff)#读取CSV文件
ngData["Pitch"] = Pitch_Data_lists
ngData["Roll"] = Roll_Data_listsngData.to_csv(ff,index=False)#默认没有索引
处理前:
数据
x| 00 02 51 00 01 05 00 00
x| 00 01 26 00 00 06 00 00
x| 00 01 23 10 01 94 00 00
x| 00 01 57 00 00 07 00 00
x| 00 02 51 00 01 05 00 00 

处理后:

数据,Pitch,Roll
x| 00 02 51 00 01 05 00 00,2.51,1.05
x| 00 01 26 00 00 06 00 00,1.26,0.06
x| 00 01 23 10 01 94 00 00,1.23,-1.94
x| 00 01 57 00 00 07 00 00,1.57,0.07
x| 00 02 51 00 01 05 00 00,2.51,1.05

Python处理字符串数据将其转化为整型数据相关推荐

  1. C语言中字符串数据转为整型数据并提取整型数据

    方法一:利用库中的atoi函数,将字符类型转换为整型,则可提取出整型. #include<stdio.h> #include<string.h> int main() {cha ...

  2. 数据预处理:分类和顺序变量转化为数值型数据

    分类数据和顺序数据要参与模型计算,通常都会转化为数值型数据.当然,某些算法是允许这些数据直接参与计算的,例如决策树.关联规则等. 真值转换 要将非数值型数据转换为数值型数据的最佳方法是:将所有分类或顺 ...

  3. Python数据分析中数据预处理:编码将文字型数据转换为数值型

    [小白从小学Python.C.Java] [Python-计算机等级考试二级] [Python-数据分析] Python数据分析中 数据预处理:编码 将文字型数据转换为数值型 选择题 对于以下pyth ...

  4. 【问题解决】【excel】求平均值、求和 结果为0 ->将excel中文本型数据转化为数值型数据

    问题:求平均值.求和 结果为0 原因:表格中数据是文本型数据,而不是数值型数据,文本型数据平均值求和都为0 解决办法:将excel中文本型数据转化为数值型数据 选中文本型数值区域,发现在选中区域的左上 ...

  5. 将整型数据转化为字符型数据(C/C++)

    C语言 void i2s(int n, char *str,unsigned char *length) //n为要转换的整型数据,str存放字符串首地址,length存放转换后字符串长度 {char ...

  6. 课程作业1:字符型强制转化为整型

    设计思想:题目要求是从命令行中接受多个数字,求和.而我们知道命令行中的输入的数据类型是字符型,所以必须转化为整型才能相加.所以我们的思路是:在输入字符串后,用for循环依次强制转化为整型,然后依次相加 ...

  7. 将字符型的数字转化为整型

    '1'的ASCII 值为 49 '0'的ASCII 值为 48 将字符型数字 '1' 转化为 整型数字 1 : '1'-'0'=1 相当于49-48 = 1

  8. 按关键字截取linux日志,linux awk截取数据,如何根据第二部分数据的关键字‘aaaaa’获取整串数据...

    linux awk截取数据,如何根据第二部分数据的关键字'aaaaa'获取整串数据 发布时间:2013-10-30 12:02:12来源:红联作者:qzq181490950 数据类似这样('dsfdd ...

  9. 16位整型数据matlab,matlab的整型数据

    1. 整型数据的申明或转换 matlab里默认都是double型数据,想要使用16位有符号整数,则需要用如下命令进行转换 b = int16(a); 其它类型的函数都是相似的,如 int, int16 ...

最新文章

  1. 面试官: Redis 与 MySQL 双写一致性如何保证?
  2. Hibernate CRUD操作
  3. 031_mysql事务的安全隐患
  4. 大白话系列之java_大白话系列之——Java的面向对象思想
  5. OpenCASCADE:拓扑 API之对象修改
  6. linux查文件名称唯美,第二章、Linux常用命令
  7. webrtc回声消除线程android,android WebRTC 示例demo源码(回音消除)
  8. mybatis中foreach标签详解
  9. SAP Spartacus 自定义 Component 的使用 - SimpleResponsiveBannerComponent
  10. Windows Embedded CE 6.0开发初体验(四)跑个应用程序先
  11. python-hashlib模块-加密
  12. 项目中的软件需求说明书的访谈部分
  13. Linux:程序设计
  14. 机箱前面的耳机插孔没声音
  15. [HFSS]Surface Mesh Generation Failed
  16. dota2收集服务器延迟,dota2亚服延迟高的解决办法!
  17. iOS添加pch头文件
  18. 喧喧发布 2.5.3 版本,主要提升系统稳定性,优化交互体验
  19. 基于四旋翼无人机的PD控制研究(Matlab代码实现)
  20. ArcGIS学习05:坐标系

热门文章

  1. html a标签刷新,Html中解决点击 a 标签刷新的问题,实现点击时不刷新
  2. Matlab 人脸识别技术
  3. 【重要】opencv实现立体匹配
  4. 中专计算机春季2020招生学校,2020年春季招生的铁路学校
  5. CC00019.python——|HadoopPython.v19|——|Arithmetic.v19|语法:进阶函数.V1|
  6. UPC(混合1)问题 D: 迷宫
  7. 7个免费小巧软件,让您的电脑用着更舒服
  8. 大数据应用实践1:基于开源架构的股票行情分析与预测
  9. express的学习
  10. 一文搞懂base64!干货