本人实际工作中,需要对样品进行检测,其中一项检测为溃缩能检测,就是对样品进行压力试验,根据输出的应力-压溃度曲线,来计算溃缩能。由于实际曲线无法给定具体函数,也就无法用积分公式解决,只能根据积分定义中的概念来解决(不清楚可以百度回顾下相关知识)
数据处理工具基本都能解决这个问题:Excel、Origin、Python等,但用Python更容易实现自动化批量处理,后期可以通过扩展实现自动化输出报表(自己暂时没这个实力)。
本文使用Jupyter Notebook进行数据处理
废话少说,咱们进入正题!!
1.初次实现
以下只是实现了一个文件的处理,没有什么复杂的操作,基本就是pandas的日常操作,并且数据也相对干净,刚开始进行pandas学习的童鞋可以用来练练手。
先用python读取其中的一个文件,看一下数据的分布情况。
读取文件时,需要多尝试几次,遇到的问题如下:
1.crv文件我都没听说过,不知道和csv有没有关系,尝试着用pd.read_csv
进行读取;2.编码不同,默认是采用utf-8
进行,而该文件用gbk
;
3.数据列名没有自动推断,需自己添加;
4.分隔符为"\t";
5.数据列名和实际记录数据不在一列中,是错位的,需要进行必要的清洗,使数据简洁直观
import numpy as np
import pandas as pd
from scipy import integrate
import math
# 读取文件
file = pd.read_csv('demo.crv',encoding='gbk',header=1,sep='\t')
# 查看数据前几行
file.head()
# 查看数据汇总信息
file.info()
# 查看数据缺失情况
file.notnull().sum(