python分析数据走势_python数据分析应用 - 近5年八类资产价格走势分析
最近发现PYTHON与TABLEAU的组合简直就是我们数据分析爱好者的绝佳工具组合。最近对大类资产配置这个问题产生了较大的兴趣,笔者就使用python作为数据获取、数据处理的工具,同时采用tableau作为数据展现的工具简单分析了8大类资产近5年多的价格走势,也许会对当下大类资产配置决策提供一些参考依据。这8大类资产包括:
小麦
大豆
新华富时A50指数
铜
原油
黄金
美元指数
道琼斯指数
数据获取
数据来源,直接爬取investing.com网站公布的各大类资产日行情数据,以黄金为例python源代码如下:
#首先需要安装selenium以及chrome驱动
from selenium import webdriver
def crawlMainIndex():
'''
在INVESTING.COM网站下下载最新的常见指数行情
'''
driver=webdriver.Chrome()
#爬取黄金指数行情
mainIndexDownloader(driver,'gold','http://cn.investing.com/commodities/gold-historical-data')
#此处省略爬取其它指数行情...
driver.quit()
def mainIndexDownloader(driver,indextype,url):
'''
根据xpath定位交易日、收盘价、开盘价、最高价、最低价、成交量、日涨幅等日行情数据
最后保存到数据库当中,为了可以每天增量下载,这里直接使用django的持久化框架。
'''
time.sleep(1)
driver.get(url)
time.sleep(1)
i = 1
while True:
quotes = driver.find_elements_by_xpath('//*[@id="curr_table"]/tbody/tr[%d]/td' % i)
if len(quotes) == 0:
break
#mainIndexQuote类直接映射为mysql数据库当中cron_mainindexquote表
data = mainIndexQuote(
tradeday=dateConverter(quotes[0].text),
closeprice=quotes[1].text,
openprice=quotes[2].text,
highprice=quotes[3].text,
lowprice=quotes[4].text,
tradevol=quotes[5].text,
chgpcnt=quotes[6].text.replace('%', ''),
type=indextype
)
existList = mainIndexQuote.objects.filter(tradeday=dateConverter(quotes[0].text)).filter(type=indextype)
#判断是否数据库当中已经存在,不存在则插入
if len(existList) == 0:
#持久化,保存在数据库当中
data.save()
i += 1
数据处理
想要分析抓取下来的8类资产价格走势,必须要解决以下几个问题:
不同品种的交易日期并不完全相同,放到一起展示,存在不对齐现象,即缺失值,必须对缺失值进行处理
不同交易品种,价格分布的区间不一样,需要进行规一化处理
由于数据库当中表的存储方式为长表,需要转换为宽表,具体原理请参见笔者的另一篇简书笔记Python数据分析之重塑reshaping与交叉表pivot table(1)
python语言当中的数据分析包pandas为解决上述数据分析过程当中的常见问题提供了非常便捷的方法,对应的源代码如下,可以看出上述三个问题,只需要两行代码
import pandas as pd
def analyseMainIndex():
'''
根据历史数据抓取的各主要指数行情,分析大类资产栩置情况
:return:
'''
with engine.connect() as conn, conn.begin():
df = pd.read_sql_table('cron_mainindexquote', conn)
#由于数据库当中表的存储方式为长表,需要转换为宽表,具体原理请参见笔者的另一篇简书笔记
#http://www.jianshu.com/p/e7ac9a0f5e6c
df1=df.pivot(index='tradeday', columns='type', values='closeprice')
#使用后向填充,作为缺失值处理方式,当然也可以使用前期填充,修改bfill参数值即可
#通过使用lambda匿名函数可以将不同大类资产的价格规范化为[0,1]区间,方便合并展示
df2=df1.fillna(method='bfill').apply(lambda x: (x - np.min(x)) / (np.max(x) - np.min(x)))
#将处理后的规范化的数据直接存储到CSV文件当中,当然此处也可以直接保存到数据库当中
df2.to_csv(r'd:\temp\normalization.csv')
数据展现
数据可视化的意义在于,让人在信息爆炸时代快速、直观地获取自已关注的信息。通过tableau直连前面已经清理整理好的csv数据文件之后,几秒钟之内即可绘制出8类资产价格走势图。效果如下:
8类资产近5年价格走势.png
从上图中可以发现,在这八大类资产当中,小麦、大豆、铜、石油都处于近5年来的相对价格低位,而美元指数、道指、已经处于5年内价格高位,正所谓,人往高处走,水往低处流,那是不是说近5年来的相对低位的资产种类看多就会因为被低估而比较安全呢?至少从近期来看,结论似乎是对的,但相信答案没有那么简单。
工行网银交易截图
图片发自简书App
提出问题,收集数据,学习原理,尝试回答问题,正是数据分析的迷人之处。
python分析数据走势_python数据分析应用 - 近5年八类资产价格走势分析相关推荐
- python分析数据走势_Python数据分析及可视化实例之个股走势预测(26)
1.项目背景: 仅仅用来练手,个股走势如果真预测准确了,都就改行当操盘手了,哈哈! 但话又说回来,如果把数据曲线特征提取出来,再进行对比异常判断,也是可以的. 数据源,请关注微信公众号:海豹战队,回复 ...
- python分析数据图片_python数据分析常用图大集合
以下默认所有的操作都先导入了numpy.pandas.matplotlib.seaborn import numpy as np import pandas as pd import matplotl ...
- python显示数据长度_Python数据分析之初识可视化
一.数据可视化概述 数据可视化是在整个数据分析非常重要的一个辅助工具,可以清晰的理解数据,从而调整我们的分析方法. - 能将数据进行可视化,更直观的呈现 - 使数据更加客观.更具说服力 例如下面两个图 ...
- python分析数据走势图_python对股市进行数据分析-tushare篇
数据准备 TuShare是一个免费.开源的python财经数据接口包.主要实现对股票等金融数据从数据采集.清洗加工 到 数据存储的过程,能够为金融分析人员提供快速.整洁.和多样的便于分析的数据,为他们 ...
- python分析股票数据 彤_Python数据分析:股票数据
最近股市比较火,我7月初上车了,现在已经下了.中间虽然吃了点肉,但下车的时候都亏进去了,最后连点汤都没喝着. 这篇文章我们就用它python 对股票数据做个简单的分析.数据集是从1999年到2016年 ...
- python案例分析大学生薪资_Python数据分析实战:解密数据分析师的薪资和需求
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:CPDA数据说 喜欢的朋友欢迎关注小编,除了分享技术文章之外还有很多 ...
- python足球数据可视化_NBA数据分析_python可视化数据分析_可视化数据分析工具_可视化分析工具-帆软...
夺冠没含金量!python和BI可视化分析,湖人赢在这点上. 在经历了很多很多之后,湖人队终于获得了总冠军,众望所归. 如果科比还在的话,一定也很自豪吧,毕竟上一次夺冠还是10年前. 那问题来了,为什 ...
- python分析微博粉丝_python数据分析微博热门
接上篇,这一篇将从技术层面讲讲是如何实现的.阅读本文您将会了解如何用python爬取微博的评论以及如何用python word_cloud库进行数据可视化. 准备工作 为什么要用m站地址?因为m站可以 ...
- python 股票分析常用库_Python数据分析常用库有哪些?Python学习!
Python为什么受欢迎?因为Python简单.易懂.好用,是一门高级的编程语言;除此之外,Python提供了大量的第三方库,开箱即用,方便.免费,非常适合从事数据分析领域的工作. 大家也都知道,Py ...
最新文章
- 在SpringMVC中使用@RequestBody注解处理json时,报出HTTP Status 415的解决方案
- puppet安装常遇见的问题
- matlab 涡轮流量计_秦皇岛卫生级流量计定制
- Go命令行库Cobra的使用
- Angular Component之间的事件通知机制
- python-循环语句基础知识
- java excel odbc_Java:无法使用JDBC ODBC更新Excel
- mysql 事件的作用_MySQL 事件
- MYSQL-查询过去7天的数据 当天没有值的赋予默认值0或者其他
- 矩阵特征值的一些特点
- windows server 2008R2下安装nginx
- Quorum企业以太坊搭建区块链记录系列
- python爬取歌词_利用Python网络爬虫抓取网易云歌词
- easyCMDB安装 ops版本和挂在U盘
- python random模块点餐程序_python之random模块
- 人民银行招聘考试计算机类真题,中国人民银行招聘计算机类笔试试题大全(多套试题包含答案,考友经验分享试题分析,最全整理资料).doc...
- 旋转矩阵、变换矩阵,李群(Lie Group)、李代数(Lie Algebra)及扰动模型
- android手机微信输入蓝色字体,终于,微信可以设置彩色昵称了!
- javascript 弹出对话框
- 分布式与集群的区别是什么?
热门文章
- 使用Power BI Desktop可视化分析冠状病毒数据
- java 执行ssis包_在SSIS包中使用CHECKPOINT重新启动包执行
- sql 生成csv数据_创建包含SQL Server数据的动态生成的CSV文件
- sql server 快照_SQL Server复制:配置快照和事务复制
- Jmeter接口测试---加解密
- Codeforces Round #519 by Botan Investments翻车记
- Thrift-java实例
- odbc数据源的配置
- PostgreSQL高可用性、负载均衡、复制与集群方案介绍
- TeeChart.Pro.v7.06在BDS2006中的安装(For Win32)