1 前言
要进行数据处理,需要将wincc的生产数据导出,导出之后发现csv文件非常大。查看之后,时间序列和数据列在一个文件格中,分隔符有空格和:因此考虑用pandas导入数据。
2 准备工作
导出的数据不能直接应用,还是需要进行预处理。因此对数据进行简单的替换,将所有的空格替换成“;”,另外将不合理的数据进行替换;
3 读取代码示例
导出的数据一般有好几万行,因此需要对数据进行分次读取,读取完毕之后再处理。
代码如下:
import pandas as pd
import chardet
##获取文件编码类型
def get_encoding(file):
# 二进制方式读取,获取字节数据,检测类型
with open(file, 'rb') as f:
return chardet.detect(f.read())['encoding']
encod = get_encoding('E:\Softwarestudy\cdqdata\A_14101_3011.csv')
encod
##'UTF-16' #发现wincc导出的csv文件为utf16型,因此读取数据代码如下:
data=pd.read_csv(r"E:\Softwarestudy\cdqdata\A_14101_3011.csv", header=None, sep=';',index_col=0,encoding='utf16',engine='python',nrows=500)
#读取前500行数据
##[50