当前位置: 首页 > news >正文

python根据时间序列画折线图_如何根据时间序列金融数据画出分年对比的季节性图表...

季节性分析是金融数据分析的常用分析方法,经常用于股票和商品价格分析中,对于观察价格、价差、基差和比价及商品供需水平十分准确直观,现在介绍几种获取季节性图表的方法。

一、金融数据终端

很多金融数据终端在提取数据的面板中提供了季节性图表的展示和导出功能,常见的如Bloomberg、Wind、钢联数据、天下粮仓等。以wind为例,在选择和提取数据之后,在看板下方可以切换到“图像”工作簿,提取到的数据会自动生成时间序列的折线图,在图片左上角工具栏中点击“季节性图表”图标,设置区间年份便可以自动生成,此处的数据和图片和数据都可以下载导出,但是没有自动更新功能。

640

640

640

二、用excel透视图画出

将整理好的数据序列数据,选择数据区域,在“插入”选项卡点击“数据透视图”,设置透视图表的位置,将数据列和时间列拖拽到“值”和“行”,这时会默认安装“年”和“季度”透视,如果我们想要按照日期比对,可以在右击透视表的“行标签”,点“组合”,只选中“年”和“日”,之后把“年”字段拖拽到“图例系列”中,就得到了分年柱状图。然后可以根据需要对图片进行修饰,可以右击图片“更改图片类型”为折线图,如果数据频率较低或存在nan值,折线图会不连续,解决方法是在图片区域右击“选择数据”,点击“隐藏的单元格和空单元格”,选择用直线连接数据点,最后我们得到了分年对比的折线图,可以自行设置线条的颜色和宽度、线型等。这种方法的优点是excel自动分析加工、数据排序自然准确;缺点是数据承载量较小,需要手工刷新图表,一旦软件出现故障容易造成数据毁损。

640

640

640

三、用excel公式生成图表

主要思路是构建年份、月份、周数或日期的辅助列,根据需求者的不同目的构建图标结构,大体思路是用IF函数与SUMIF函数或INDEX与MATCH函数配合,搜寻源数据中的唯一值,然后根据年份或更高频数据提供的坐标把数据填充到新的表结构中,最终形成类似于前述的透视表,然后插入折线图。这种方法的关键在于数据坐标的确定方法,优点是图片会随源数据自动更新、每次重算,缺点是对公式的灵活应用有一定要求。

640

四、用python实现

开始我用pandas自带的透视图功能可以把数据拆分但是没有实现想要的结果,一种解决思路是从数据源的datetimeindex提取“年”和“日期”两个辅助列,按年遍历数据,以“日期”列为键,作为index,join合并各年数据,效果如图。

640

640

640

这种方法存在问题是,pandas的合并默认按照index进行排序,一旦用到跨年的时间段,比如某一期货合约的存续期间,join的结果就会时间顺序错乱。

640

解决的思路是对时间区间是否跨年进行判断,作为初始参数选择不同处理方法,跨越元旦的区间以“年”为colunms、以“日期”str为index,遍历写入新的dataframe,可以最大程度保存数据原貌,所得到的数据表可以直接保存到excel。

640

640

640

相关文章:

  • tkinter.filedialog如何一次性选择多个文件_多个文档怎样一键重命名?用这款工具只需七步即可实现...
  • python同一层次的代码、缩进可以不一致_Python3缩进对逻辑的影响
  • js修改style样式_Vue之 绑定样式
  • 第二次打开不是最大_前《足球周刊》主编卢劲:法国队何能缔造半世纪以来最大决赛比分?...
  • python运行闪退_解决Opencv+Python cv2.imshow闪退问题
  • python sklearn logistic_安利一个Python大数据分析神器!
  • python模块下载失败_Python安装模块出错解决的办法(pip相关的安装)
  • angular6表格控件推荐_用Excel做张老板最爱的自动化表格,让你的工资翻一番!【Excel教程】...
  • import java.io 包下载_第37 p,模块与包的使用
  • postgresql 客户端_PostgreSQL在TPCC场景下的PK
  • openssl升级_openssl 拒绝服务漏洞通告
  • pytorch实现人脸识别_【他山之石】如何支撑上亿类别的人脸训练?显存均衡的模型并行(PyTorch实现)...
  • dubbo源码深度解析_mybatis 3.x源码深度解析(二)
  • arduino char*转string_小学生学习C++||第四十四节 string遍历与比较
  • python url encode_python urlencode
  • CentOS 7 防火墙操作
  • ES2017异步函数现已正式可用
  • iOS编译提示和导航提示
  • leetcode46 Permutation 排列组合
  • Markdown 语法简单说明
  • mysql中InnoDB引擎中页的概念
  • Python学习之路16-使用API
  • webgl (原生)基础入门指南【一】
  • 从PHP迁移至Golang - 基础篇
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 记录一下第一次使用npm
  • 解决iview多表头动态更改列元素发生的错误
  • 模型微调
  • 前端之Sass/Scss实战笔记
  • 三分钟教你同步 Visual Studio Code 设置
  • 使用 QuickBI 搭建酷炫可视化分析
  • 我的面试准备过程--容器(更新中)
  • #ubuntu# #git# repository git config --global --add safe.directory
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (4)logging(日志模块)
  • (二)学习JVM —— 垃圾回收机制
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .a文件和.so文件
  • .Net MVC + EF搭建学生管理系统
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • [2021 蓝帽杯] One Pointer PHP
  • [Android]常见的数据传递方式
  • [ASP.NET MVC]如何定制Numeric属性/字段验证消息
  • [BZOJ2850]巧克力王国
  • [BZOJ4010]菜肴制作
  • [caffe(二)]Python加载训练caffe模型并进行测试1
  • [DL]深度学习_Feature Pyramid Network
  • [ffmpeg] av_opt_set 解析
  • [IE9] IE9 beta版下载链接
  • [javaee基础] 常见的javaweb笔试选择题含答案
  • [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 'XXX' 无效
  • [PHP]实体类基类和序列化__sleep问题
  • [SharePoint][SharePoint Designer 入门经典]Chapter13 客户端Silverlight编程
  • [spark] DataFrame 的 checkpoint