Python数据处理(1) —CSV文件数据处理
admin 于 2018年02月23日 发表在 Python软件开发
断断续续使用Python编程已接近半年时光,尽管目前使用的功能相对单一(主要用于传感器实验数据的处理),但仍然发现,某些时候使用时会一时半会想不起来了,归结原因是“不熟悉”;因此,考虑将目前学习Python的一些东西记录下来,权当是方便下次快速查找吧!
关于Python数据处理内容,我会开一个系列不断更新,争取基本覆盖实际中使用到的相关内容。
1. 本节讲解
Python读取.csv文件,并进行数据图像绘制。
2. 原始数据
部分原始数据的内容,格式如下:
180202_20:28:52,180202_20:24:31,3 180202_20:28:53,180202_20:24:41,4 180202_20:28:53,180202_20:24:51,4 180202_20:28:54,180202_20:25:01,4 180202_20:28:54,180202_20:25:11,4 180202_20:28:55,180202_20:25:21,5 180202_20:28:55,180202_20:25:31,5
第一个逗号分隔数据为:TSI设备内部时间戳;第二个逗号分隔数据为:PC端操作系统时间戳;最后一个分隔符数据为:TSI设备此时刻对应值。我们需要获取以TSI设备时间戳为基准的TSI设备对应读数的曲线。
3. 工程文件(点击下载附件)
核心代码如下:
# -*- coding: utf-8 -*- """ Created on Thu Dec 7 10:50:09 2017 @author: lu """ import time import csv import matplotlib.pyplot as plt #读取的csv文件 fileName = '180202_201159 TSI.csv' #绘图所需数据 xtime = [] yvalue = [] #获取TSI传感器数据 with open(fileName, 'r') as csvfile: spamreader = csv.reader(csvfile) for row in spamreader: #获取时间轴数据,根据csv格式知其为第一列row[0] xtimestamp = time.mktime(time.strptime(row[0],"%y%m%d_%H:%M:%S")) #获取PM2.5相关参数,根据csv格式知其为第三列row[2] if(row[2].isdigit()): xtime.append(xtimestamp) yvalue.append(row[2]) else: print("Wrong type: " + str(row)) #对X轴时间进行归一化 deta = int(xtime[0]) for j in range(len(xtime)): xtime[j] = int(xtime[j])-deta yvalue[j] = int(yvalue[j]) #X和Y坐标信息 plt.xlabel("Time(s)") plt.ylabel("Ug(TSI_PM2.5)") #绘制曲线 plt.plot(xtime,yvalue,label='TSI_PM2.5',linewidth=2) plt.legend() plt.show()