这是接昨天的推文,昨天的推文中我用来分析的数据是自己手动输入的少量数据,但是现实中我们需要的数据可能比较大,因此被存储在电子表格中,我们就需要把数据读取并提取需要的内容进行分析,好吧,开始吧,拉次够

首先我们把本次实验所需要的库导入,有pandas,matplotlib,和scipy,他们的作用分析+绘图

import matplotlib.pyplot as pltimport pandas as pd#import numpy as np#from pylab import*from scipy import signal

在Python中,读取excel的xlsx格式数据需要用到pandas库中的read_excel模块,如下,我们来把数据读取进来

tem = pd.read_excel("D:\LIUCAS\Python\TEM.xlsx")

然后我们可以使用潘大师看看数据长啥样

print(tem.shape)#康康tem这个xlsx数据的维度,显示为696行和3列print(tem.columns)#揭开他的面纱看看长啥样(列INDEX),第一列是year,第二列是month,第三列是tem#print(tem.head or tail(X))查看前or后X行,tail有尾巴的意思print(tem.head(300))#瞅瞅前300行啥样,300x3的维度结构

上面,我们已经把xlsx数据读取进来了,但是现实情况是我需要其中的某一列数据来进行分析,在web查阅了相关资料后,其实不难,如下

year = pd.read_excel('TEM.xlsx',skiprows=0)['year']#读取时间,这里的0是指第一行temdata = pd.read_excel('TEM.xlsx',skiprows=0)['tem']#读取tem值

分别把时间和tem读取进来,需要注意的是0值在这里是指第一行,而非第0行

数据读取完毕,现在进行分析step吧

使用scipy库中的detrend函数进行原始数据的去趋势处理:

tem_det=signal.detrend(temdata,axis=-1, type='linear', bp=1)#scipy的signal。detrend模块去趋势,参数后面可选

接下来我们分别构建高通滤波和低通滤波,如下:

m, n = signal.butter(8, 0.2, 'highpass')#构建高通滤波,参数分别是滤波阶数,临界频率和typex, y = signal.butter(8, 0.2, 'lowpass')#F_high = signal.filtfilt(m, n, tem_det,axis = 0)#高通滤波F_low = signal.filtfilt(x, y, tem_det,axis = 0)#低通滤波

上述的数据提取和分析部分就ok了,但是我想把这里的4张图都画在一张纸上,因此我们需要学习一下子图subplot函数的使用,如下:

fig = plt.figure(figsize=(3,3),dpi=100)#建一个画布来画图ax1 = fig.add_subplot(221)plt.plot(year,temdata,c = 'k')#原始数据plt.title('Raw Data')ax2 = fig.add_subplot(222)plt.plot(year,tem_det,c = 'g')#去趋势数据plt.title('Detrend')ax3 = fig.add_subplot(223)plt.plot(year,F_high,c = "r")#高通滤波plt.title('Highpass')ax4 = fig.add_subplot(224)plt.plot(year,F_low,c = "b")#低通滤波plt.title('Lowpass')

先建一个fig画布,长宽为3x3,分辨率为300dpi,设置大的话耗时长

ax1 = fig.add_subplot(221)

建立第一个子图,221代表的的行列和序号,这里就是2x2=4个子图,序号是第1个位置,可以用一个示意图很直观的理解,如下示意图

最后想要看到图的话,需要plt.show()一下,搞定。结果图如下:

c++读取excel_Python读取并提取xlsx数据+去趋势和高通滤波与低通滤波相关推荐

  1. Python数据低通滤波笔记

    from cProfile import label import pandas as pd import matplotlib.pyplot as plt from scipy import sig ...

  2. Matlab | 基于复赛谱提取地震数据的地震子波

    function w = ExtractWavelet(data, M) % 功能:基于复赛谱提取输入地震数据data的地震子波w % 输入: % x - 地震信号,Nt×Nz % M - 提取地震子 ...

  3. matlab去趋势,[转载]使用Matlab对数据进行去趋势(detrend)

    使用Matlab对数据进行去趋势(detrend) 介绍 去趋势(detrend)处理可以消除传感器在获取数据时产生的偏移对后期计算产生的影响.从数据中删除趋势可以将分析集中在数据趋势本身的波动上.但 ...

  4. python用pandas读取excel_Python 中利用Pandas处理复杂的Excel数据

    关于Excel数据处理,很多同学可能使用过Pyhton的pandas模块,用它可以轻松地读取和转换Excel数据.但是实际中Excel表格结构可能比较杂乱,数据会分散不同的工作表中,而且在表格中分布很 ...

  5. python运行微软图标代码_Python读取xlsx数据生成图标代码实例

    运行结果: 程序代码如下: #将excel中的数据进行读取分析 import openpyxl import numpy as np import math import matplotlib.pyp ...

  6. python读取excel部分值存入另一个excel-python3读取excel文件只提取某些行某些列的值方法...

    今天有一位同学给了我一个excel文件,要求读取某些行,某些列,然后我试着做了一个demo,这里分享出来,希望能帮到大家: 首先安装xlrd: pip3 install xlrd 然后上代码: imp ...

  7. python怎么读取excel某一行某一列-python3读取excel文件只提取某些行某些列的值方法...

    今天有一位同学给了我一个excel文件,要求读取某些行,某些列,然后我试着做了一个demo,这里分享出来,希望能帮到大家: 首先安装xlrd: pip3 install xlrd 然后上代码: imp ...

  8. python读取excel某一行内容-python3读取excel文件只提取某些行某些列的值方法

    今天有一位同学给了我一个excel文件,要求读取某些行,某些列,然后我试着做了一个demo,这里分享出来,希望能帮到大家: 首先安装xlrd: pip3 install xlrd 然后上代码: imp ...

  9. python3读取excel某一列_怎样用python,读取excel中的一列数据!python读取excel某一列数据...

    Python 如何循环读取csv或者excel中的一列数据,写入到中搜索 是可以 a.csv复制到 b.csv中 import csv def foo(): with open('a.csv', 'r ...

最新文章

  1. 网络摄像头1 mjpg-streamer使用方法
  2. JWTToken超时刷新策略
  3. Python 开发者 2017 应该关注的 7 个类库
  4. Tomcat启动乱码及IDEA中tomcat信息乱码解决方法
  5. UVA10150 POJ2647 Doublets【BFS】
  6. jQuery数据缓存功能的解析及简单实现
  7. python3解析纯真ip数据库
  8. 基于RS485通信的Modbus通信协议
  9. 概率论在实际生活的例子_概率论在实际生活中的应用
  10. PHP 对HTML页面进行压缩
  11. The server is invalid. Error occurred reading server credential. Required file or directory ‘serverO
  12. 凯云水利水电造价工程系统 (三) 材料单价模块(1)
  13. JAVA 多用户商城系统b2b2c-Spring Cloud Stream 介绍
  14. 学神经网络应该看看哪些书
  15. 个人博客系列【Hexo】——git 使用ssh协议免密登录
  16. C语言 初级-摄氏度转华氏度
  17. 【转】OpenVZ虚拟化开源项目简介
  18. 爬取原神同人社的pljj照片
  19. 电视软件测试项目怎么做,LED TV液晶电视软件测试用例.doc
  20. MATLAB中imfill()函数解释

热门文章

  1. 【Flink】Flink 1.9 升级 1.12.4 本地可以运行 打包后 集群运行就找不到类 ClassNotFoundException
  2. 【Spring】Spring 使用 Redis 事务
  3. 【registry】registry 0.9 源码 在 windows下运行
  4. 【Jenkins】Jenkins : jenkins-2.121.1 安装 与 使用
  5. 【Flink】Flink报错 Could not forward element to next operator
  6. spark学习-35-Spark的Map任务输出跟踪器MapOutputTracker
  7. python中字符串之间的比较_如何利用python来对比两个字符串的差异
  8. Java关键字:final、default、transient
  9. shell基础07 函数
  10. (备忘)卸载微软自带输入法