问题:把测量的现场数据(示波器20141732上线阈值11.csv)以时间为横坐标画出UL1,I1的图形。如下图所示:要处理的具体数据处理后画出的图形
读取文件时间数据时遇到的问题:
1、直接读取,时间会变成‘str’格式,不能画图,日期和时间是分开的两列不能合并,
可以自己写for循环换算处理,但是太过繁琐。
file_directory = "D:\\Documents\\Mynotebooks\\铁路知识\\示波器20141732上线阈值11.csv"
data = pd.read_csv(file_directory,sep='\t')
2、指定parse_dates=['时间'],日期和时间是分开的两列不能合并,另外它会自动在‘时间’列表中加入运行程序当日的日期,不明白为啥?
data = pd.read_csv(file_directory,sep='\t',parse_dates=['时间'])
知道原因的欢迎指正!
3、指定parse_dates=['时间'],日期和时间是分开的两列不能合并,画图时提示错误;could not convert string to float: '17:32:10.322775'
添加这句转换语句
time =pd.to_datetime(data.时间)
可以画图,但出现同2一样的问题(自动在‘时间’列表中加入运行程序当日的日期,不明白为啥?)。
4、指定:parse_dates=[['日期','时间']] (注意有两个方括号)
data = pd.read_csv(file_directory,sep='\t',parse_dates=[['日期','时间']])
# 读取原始数据,把日期和时间两列合并为一列
错误:could not convert string to float: '2017/14/10 17:32:10.322775'
添加这句解析语句:time =pd.to_datetime(data.日期_时间,format='%Y/%d/%m %H:%M:%S.%f')
# 根据数据的时间格式解析时间
# (2017/14/10 17:32:06.329269)即format='%Y/%d/%m %H:%M:%S.%f'
time =pd.to_datetime(data.日期_时间,format='%Y/%d/%m %H:%M:%S.%f')
成功运行,画图成功,没有问题!
源文件:(处理代码和部分数据)minda163/data_python_matlabgithub.com
参考:IO Tools (Text, CSV, HDF5, …)pandas.pydata.org
欢迎有其他处理方法的小伙伴一起交流!