更多精彩,请点击上方蓝字关注我们!

1. 准备工作

tushare是一个第三方财经数据接口包,需要安装包并完成注册。

  • 安装tushare包

pip install tushare 
  • 为防恶意调用接口数据,官方()需要新用户完成注册、提高积分(例如达到200)、取得访问权限token ID

2. 加载数据

首先需要导入包已安装的tushare包。然后通过tokenID获取一个有访问权限的API接口,最终通过官方文档说明,使用index_daily() 来获取样例数据。这里取399401.SZ的交易日期和收盘价。

import tushare as ts 

ts.set_token("1797f6915fbc1e612c33c6ed4cf85a2b7b349d85db80bf0860337fff")pro=ts.pro_api()df1=pro.index_daily(ts_code="399401.SZ")[['trade_date', 'close']]

3. 数据处理-转化与合并

  • 数据类型转化为datetime

导入数据后,先观察源数据的字段类型是否符合预期。通过执行如下脚本,得到当前数据集中,trade_date为object 并非日期类型

# 查看数据类型print(df1.dtypes)# 查看样例数据print(df1.head())

pandas中改变某列的数据类型为日期时,可用pd.to_datetime。修改完成后,将数据集中的日期字段重新设为索引。注意不要漏掉inplace=True

df1.sort_values('trade_date', inplace=True)# 转换列数据类型为日期df1['trade_date']=pd.to_datetime(df1['trade_date'])# 将指定的日期类型 列设为索引,并替代。df1.set_index('trade_date', inplace=True)
  • 数据合并concat

上面的df1对象中只包含一支股票的信息,当在matplotlib中展现时,仅可以观察趋势。如果需要与其它股票作对比分析,则需要合并另外的数据。

# 获取多支交易数据数据,作对比分析 list1 = ['000002.SZ', '000012.SZ', '600010.SH']

for i, ts_code in enumerate(list1):    # 取指定日期的数据     df_tmp = pro.daily(ts_code=ts_code, start_date='20170101', end_date='20180101')[['trade_date', 'close']]    df_tmp.sort_values('trade_date', inplace=True)    df_tmp['trade_date']=pd.to_datetime(df_tmp['trade_date'])    df_tmp.rename(columns={'close': ts_code}, inplace=True)    df_tmp.set_index('trade_date', inplace=True)    if i==0 :        df = df_tmp    else:    # axis=1,沿第2条轴即X轴。列增加        df = pd.concat([df, df_tmp], axis=1)    print(ts_code)# 查看数据 df.head()

4. 可视化展现

  • 查看单一股票的年度趋势图,并添加参考线

import matplotlib.pyplot as plt ax = df1.plot(color="blue", figsize=(12, 4), linewidth=2, fontsize=6)ax.set_xlabel("trade date")ax.set_ylabel("399401.SZ close")ax.set_title("Trend analysis of recent years 2013-2019 ", fontsize=8)

# 添加水平线ax.axvline("2018-08-15", color="red", linestyle="--", linewidth=2)ax.axhline(6000, color="green", linestyle="--",linewidth=2 )

plt.show()

如下示图:

  • 参数设置。

主题切换

可先调用语句`plt.style.available`,查看当前可用的主题名称,再选择即可。

设置X轴日期格式

matploblib中也提供了的dates对象,对X轴的显示日期格式与频度进行设置。如下脚本,将设置日期区间为'2013-01-01' 至 '2019-12-01',显示'年-月',频度为10个月。
# 查看可用样式import matplotlib.dates as mdate 

print(plt.style.available)plt.style.use("seaborn-talk")ax1=df1.plot(figsize=(12, 4))ax1.set_title("my mew style - seaborn-talk")ax1.xaxis.set_major_formatter(mdate.DateFormatter('%Y-%m'))plt.xticks(pd.date_range("2013-01-01", "2019-12-01", freq="10m"))plt.show()

示例图如下:

  • 对比分析

先预览已完成合并的数据。dataFrame对象df中trade_date仍为索引,但是新增了其它列。

ax3 = df.plot(linewidth=3 , fontsize=16, figsize=(12, 4 ))ax3.set_xlabel('trade_date')ax3.set_ylabel("unit price")# 指定X轴显示刻度 ,取代默认设置ax3.xaxis.set_major_formatter(mdate.DateFormatter('%Y-%m'))plt.xticks(pd.date_range("2017-01-01", "2018-01-01", freq="3m"))

ax3.legend(fontsize=12)ax3.set_title("Comparison of analysis")plt.show()

展现结果为:

5. 小结

  • 介绍了获取第三方平台的接口数据的方法

  • 数据清洗与合并,主要有数据类型转换、重新排序、索引重置、数据合并

  • 时序数据的可视化对比分析与基本展现设置

图文 / 来源网络

版权归原作者所有,侵联删

END

碧茂课堂精彩课程推荐:

1.Cloudera数据分析课;

2.Spark和Hadoop开发员培训;

3.大数据机器学习之推荐系统;

4.Python数据分析与机器学习实战;

详情请关注我们公众号:碧茂大数据-课程产品-碧茂课堂

现在注册互动得海量学币,大量精品课程免费送!

关注最新行业动态,

加群进行技术交流!

dateframe取某列数据_Python获取时序数据并进行可视化分析相关推荐

  1. python读取时间序列csv可视化_Python获取时序数据并进行可视化分析

    本帖最后由 林宝宝 于 2019-7-31 17:29 编辑 问题导读: 1.获取第三方平台的接口数据的方法是什么? 2.怎么做数据清洗与合并?主要有数据类型转换.重新排序.索引重置.数据合并 3.时 ...

  2. python获取天气数据_python获取天气数据

    三.具体实现 """ =================================== -*- coding:utf-8 -*- Author :GadyPu E_ ...

  3. python人口数据_python获取人口数据(500m网格)GeoQ智图api

    1.注册智图GeoQ,获得api的key 2.分析url url='http://api.geoq.cn/你的密钥/filterservice/regionfilter' 3.筛选条件 values= ...

  4. python使用pandas通过聚合获取时序数据的最后一个指标数据(例如长度指标、时间指标)生成标签并与原表连接(join)进行不同标签特征的可视化分析

    python使用pandas通过聚合获取时序数据的最后一个指标数据(例如长度指标.时间指标)生成标签并与原表连接(join)进行不同标签特征的可视化分析 目录

  5. 大数据技术基础_网易大数据体系之时序数据技术

    分享嘉宾:范欣欣 网易大数据技术专家 编辑整理:王吉东 内容来源:AI科学前沿大会 出品社区:DataFun 注:欢迎转载,转载请注明出处. 本次分享内容: 时序数据平台主要业务场景 时序数据平台体系 ...

  6. js 用下标获取map值_js map方法处理返回数据,获取指定数据简写方法

    map方法处理返回数据,获取指定数据简写方法 前言 后端返回数据为数组列表时,通常比较全面,包含了很多不需要的数据,可以通过 map 方法处理返回数据,筛选出想要的数据 例如 // 返回数据 res ...

  7. Qt|Http笔记-两种方式发送http协议数据,获取服务器数据(GET方法)

    目录 背景 演示 搭建Java Web环境 QTcpSocket获取服务器数据 QNetworkAccessManager获取服务器数据 背景 Qt中有2个方式可以实现HTTP协议的发送,一个是使用Q ...

  8. 大数据时代的时序数据 陈超-互联网技术联盟-专题视频课程

    大数据时代的时序数据 陈超-2856人已学习 课程介绍         1024大数据技术峰会邀请到11位来自一线互联网企业的大数据核心研发团队骨干成员,针对选型开源技术搭建大数据平台.持续运维.优化 ...

  9. Python量化入门系列:获取数据-Tushare获取股票数据(1)

    做量化用到的数据一般包括二级市场各种数据.宏观经济各种数据以及一些特殊需求的网页数据,需要有通过python获取数据.常见的获取数据方式有三种: 一是通过SQL语言从数据库获取数据,适用于二级市场和宏 ...

最新文章

  1. 【 C 】队列的链式存储实现
  2. .Net Core扩展 SharpPlugs简单上手
  3. IT真的很重要,还是会被边缘化?
  4. 在Dictionary使用foreach的注意
  5. vscode插件开发实践与demo源码
  6. 动态加载JavaScript文件
  7. tidb使用坑记录TiDB和Mysql的sql差异总结
  8. 排序算法-冒泡排序算法
  9. 微信公众号文章 html,微信公众号文章爬取
  10. python 什么是原类_python中什么是类
  11. 网上买包包首选的3个网站(必看的3个包包网站)
  12. java定义苹果类Apple_定义一个水果接口Fruit,里面定义一个表示吃水果的eat方法。定义一个苹果类Apple和一个橘子...
  13. vue-time-slot 一款基于vue3的会议预约时间组件,时间轴为早7-晚11,可自由选择,并且非常方便。
  14. 博弈论笔记--06--纳什均衡之约会游戏与古诺模型
  15. 换位思考:大学教育我之见
  16. dr计算机操作,计算机里的“DR的接口”是什么?
  17. FPGA_MIG驱动DDR3
  18. 吃完7家互联网大厂食堂,我回去就把老板开了
  19. Windows10触控板防误触
  20. centos7 修改selinux 开机导致 faild to load SELinux polic

热门文章

  1. 对称密码和非对称密码体系_密码学类型:对称和不对称
  2. 回溯算法n皇后问题_使用回溯算法的N Queen问题和解决方案
  3. 一个类可以有一个接口,接口可以有一个Java类吗?
  4. Python格式化字符串f-string常用用法
  5. Snipaste在Window运行后遇到提示计算机中丢失 api-ms-win-crt-runtime-l1-1-0.dll 错误
  6. OpenLDAP在linux上的部署和原理应用centos7
  7. mybatis-plus (3.4.2)使用
  8. JSONObject与GSON的一些常用的方法的使用
  9. pythonturtle画彩虹蟒蛇_python如何用turtle库画蟒蛇?
  10. ajax拼接外部变量,在ajax调用中访问函数外部变量的问题