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

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

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())

e4ad5d9ec0e5479bd035aaf6c1464287.png

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()

如下示图:

a977d520e015aef280e852c799395eec.png

  • 参数设置。

主题切换

可先调用语句`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()

示例图如下:

490670e3f1e481d9db881ce01c4178e5.png

  • 对比分析

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

067be44d777a366d94bcd855b0b993ae.png

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()

展现结果为:

94ecd1b2c957628cea187d772ebbd906.png

5. 小结

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

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

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

图文 / 来源网络

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

812ee22d826a63cf2bb8d06612284928.png

a48b75690690e5f3e14b8df898a1b5a0.pngEND

1c7d9040527ef0b2b8ed2fc4f04983b3.png

碧茂课堂精彩课程推荐:

1.Cloudera数据分析课;

2.Spark和Hadoop开发员培训;

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

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

e736b8df98bdd0453c8ab7c9f3609cdf.png

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

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

2e36903c5ddaddc5cf3b45ac9864a633.png

关注最新行业动态,

加群进行技术交流!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/556654.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Shiro 登录认证源码详解

Apache Shiro 是一个强大且灵活的 Java 开源安全框架,拥有登录认证、授权管理、企业级会话管理和加密等功能,相比 Spring Security 来说要更加的简单。 本文主要介绍 Shiro 的登录认证(Authentication)功能,主要从 Sh…

中3d库后接负载_Nature子刊:近红外光交联水凝胶用于活体生物3D打印

由于打印精度高、速度快,光固化3D打印成为组织再生等医学研究的有利工具,然而由于现在光固化3D打印普遍采用波长较短的光源,对组织损害较大且穿透力不高,这大大限制生物体内3D打印的发展。最近,来自意大利帕多瓦大学的…

SpringBoot + Shiro 缓存记住密码

一般来讲,记住密码的基本处理,就是把用户的一些基本信息(密码)存入浏览器的Cookie,下次登录的时候优先验证Cookie,后端做处理;以此来实现记住密码的功能!使用shiro自带的RememberMe功能,使用起来…

怎么看调用的接口_Hadoop RPC调用实例分析

以ClientProtocol接口中的rename RPC调用进行一次实例分析。rename方法在ClientProtocol接口中定义,它的两个参数是String类型的,不能直接通过网络传输。我们看谁实现了ClientProtocol接口并重写rename方法。看到是ClientNamenodeProtocolTranslatorPB这…

java 的构造函数修饰符public private protected

java中使用new关键字创建对象的时候,构造方法上的修饰符起什么作用? 1,限定可以创建对象的位置 使用public 修饰,new对象时,可以在任何包下的任何类中。 使用protected修饰,只能在当前类,或者…

父子结构查询_Java面试准备(5)之数据结构与算法——红黑树

欢迎点赞评论关注~~~~~~~如上图,二叉查找树极端情况下可能会变成一个单链表,这种查询时间复杂度就变成O(n)了,红黑树在二叉查找树的基础上进行了自平衡。1.原理分析如上图,红黑树具有以下特征:1. 每个节点要么是黑色&a…

Redis学习笔记——SpringDataRedis的使用

与Spring集成 我需要哪些jar包&#xff1f; <dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-redis</artifactId> </dependency> <dependency><groupId>redis.clients</groupId><a…

中海达数据怎么转rinex_cors账号网最新实战教程,中海达 F61 Plus RTK连接千寻cors账号的方法...

RTK在工程测量工作中越来越流行&#xff0c;在这股潮流中&#xff0c;中海达品牌的F61 Plus因为融合了中海达多年的成熟建站技术HD-CORS&#xff0c;在工程测量工作中也受到了很大欢迎。它可以配套各种cors账号使用&#xff0c;使用过程中只需一台RTK移动站即可进行数据采集、施…

Shiro之UsernamePasswordTokenRememberMeAuthenticationTokenAuthenticationToken

继承关系 先看一下三者的继承关系&#xff0c;会有一个比较清楚的认识 AuthenticationToken AuthenticationToken 用于收集用户提交的身份&#xff08;如用户名&#xff09;及凭据&#xff08;如密码&#xff09;。Shiro会调用CredentialsMatcher对象的doCredentialsMatch方法对…

华为手机滑动速度设置_华为手机打字速度慢?开启这个设置,一分钟就能打200字...

很多朋友都说自己的打字速度非常慢&#xff01;每次使用手机聊天、记录工作事项大半天还没打一段字来。其实使用华为手机就能非常快速的码字&#xff0c;不管聊天还是工作&#xff0c;使用这个方法&#xff0c;一分钟就能打200字。1.聊天快速打字手机键盘因为体积的原因&#x…

SpringBoot 使用AOP功能

RPC&#xff0c;AOP都会用到代理&#xff0c;代理的技术有jdk的Proxy代理(必须实现接口)&#xff0c;cglib(可以不实现接口&#xff0c;直接实现类)&#xff0c;Javassist(jboss )而Spring boot本身也在方方面面使用了代理技术,在Spring中有两种动态代理方式&#xff0c;分别为…

cognos报表导出excel_有了这个报表工具,一键生成自定义的各种报表,还可以导出Excel...

EasyReport是一个简单易用的Web报表工具,它的主要功能是把SQL语句查询出的数据转换成报表页面&#xff0c; 同时支持表格的跨行(RowSpan)与跨列(ColSpan)配置。 同时它还支持报表Excel导出、图表显示及固定表头与左边列的功能。功能介绍本工具从数据库(MySQL,Oracle,SQLServer,…

java自定义注解实现日志功能

一、spring aop的通知类型 1、前置通知&#xff08;Before&#xff09;&#xff1a;在连接点前执行&#xff0c;不会影响连接点的执行&#xff0c;除非抛异常&#xff1b; 2、后置通知&#xff08;AfterReturning&#xff09;&#xff1a;在连接点正常执行完成后执行&#xff0…

java自定义注解annotation记录操作日志

说到注解我们平常用的可以说非常多啦&#xff0c;说几个常用的的注解 RestController Service Autowired 这些都是我们平常使用spring框架最常见的注解了&#xff0c;我们只知道它们非常好用&#xff0c;使用RestController 就能构建一个restful的控制器,Service 这个是我们常用…

数组concat_js 标准二维数组变一维数组的方法

问题&#xff1a;[[1, 1], [2, 3], [4, 5]] -> [1, 1, 2, 3, 4, 5]&#xff1f;方法一利用es5的arr.reduce(callback[, initialValue])实现var arr1 [[0, 1], [2, 3], [4, 5]]; var arr2 arr1.reduce(function (a, b) { return a.concat(b)} ); // arr2 [0, 1, 2, 3, 4, 5…

安卓手机小说阅读器_乐小说阅读器下载手机版-乐小说阅读器app下载安装

乐小说阅读器app&#xff0c;一款非常不错的小说阅读器&#xff0c;这里的小说资源不仅非常的丰富&#xff0c;而且用户们可以免费任意阅读。小说内容非常的优质&#xff0c;阅读界面非常的清爽简洁&#xff0c;无任何广告弹出。喜欢看小说的就下载试试吧&#xff01;关于乐小说…

java 自定义注解+AOP实现日志记录

ssm版本&#xff1a; 1、首先自定义一个注解&#xff0c;该注解有两个属性&#xff0c;一个是模块名&#xff0c;一个是操作的内容。该注解是用来修饰Service层中的方法的。 2、创建一个切面类&#xff0c;该切面使用Aspect和Component注解修饰&#xff0c;该页面需要注入一个…

是人是谁_谁是白鹤滩最可爱的人

白鹤滩水电站是全球在建第一大水电站&#xff0c;主要特性指标均位居世界水电工程前列&#xff0c;2021年7月&#xff0c;首批机组投产发电将是白鹤滩工程为建党一百周年献礼的重大壮举。建设中的白鹤滩水电站工程建设不停步&#xff0c;白鹤滩水电站未来的运行管理者——白鹤滩…

使用@Order注解调整配置类加载顺序

Order 1、Spring 4.2 利用Order控制配置类的加载顺序&#xff0c; 2、Spring在加载Bean的时候&#xff0c;有用到order注解。 3、通过Order指定执行顺序&#xff0c;值越小&#xff0c;越先执行 4、Order注解常用于定义的AOP先于事物执行 1.Order的注解源码解读 注解类&am…

potplayer 多个进程_进程组、会话、控制终端概念,如何创建守护进程?

守护进程概念&#xff1a;守护进程&#xff0c;也就是通常所说的Daemon进程&#xff0c;是Linux中的后台服务进程。周期性的执行某种任务或等待处理某些发生的事件。Linux系统有很多守护进程&#xff0c;大多数服务都是用守护进程实现的。比如&#xff1a;像我们的tftp&#xf…