数据分析案例-股票数据分析

 

🤵‍♂️ 个人主页:@艾派森的个人主页

✍🏻作者简介:Python学习者
🐋 希望大家多多支持,我们一起进步!😄
如果文章对你有帮助的话,
欢迎评论 💬点赞👍🏻 收藏 📂加关注+


目录

导入数据

时间类型转换 

日期筛选

按区间筛选

按指定时间筛选 

金融计算 

涨跌额

涨跌幅

移动均值

移动均值(可视化)

移动均值(可视化)

指数移动平均值(EMA)

MACD

布林指标

日期移动 

移动值

移动索引

日期重采样 

日 -> 周

日 -> 月

分钟 -> 日

低频 -> 高频

总结 


导入数据

import pandas as pd
import warnings
warnings.filterwarnings("ignore")
df1 = pd.read_csv("000001_daily.csv")
df2 = pd.read_csv("000001_5min.csv")
df1.head()

时间类型转换 

将 df1 和 df2 的 日期 列转换为 pandas 支持的时间格式

df1['日期'] = pd.to_datetime(df1['日期'])
df2['时间'] = pd.to_datetime(df2['时间'])
# df1['日期'] = df1['日期'].astype('datetime64[ns]')

 日期筛选

按区间筛选

筛选出 df2 时间在 2021-08-03 09:35:00 与 2021-08-04 15:00:00 之间的数据

df2[(df2['时间'] > '2021-08-03 09:35:00') & (df2['时间'] < '2021-08-04 15:00:00')]

按指定时间筛选 

筛选 df2 时间为 2021-08-03 的全部数据

df2.set_index('时间').truncate(after=pd.Timestamp('2021-08-03'))

金融计算 

涨跌额

df1 新增一列 涨跌,计算前后两日收盘价之差

注意:虽然我们的df1包含涨跌额列,但是这个操作很常用,所以练习一下

df1['涨跌']  = df1.收盘.diff()

涨跌幅

df1 新增一列 涨跌变化率,计算前后两日收盘价之差的变化率

注意:虽然我们的df1包含涨跌幅列,但是这个操作很常用,所以练习一下,结果可以用于验证

df1['涨跌变化率'] = (df1.收盘.pct_change()).apply(lambda x: format(x, '.2%'))

移动均值

计算收盘价的5日移动均线

df1.收盘.rolling(window=5).mean()
0          NaN
1          NaN
2          NaN
3          NaN
4        8.314...  
1141    18.672
1142    18.792
1143    19.298
1144    19.650
1145    19.676
Name: 收盘, Length: 1146, dtype: float64

移动均值(可视化)

计算并绘制收盘价的5日移动均线

df1.收盘.rolling(window=5).mean().plot()

移动均值(可视化)

同时计算并绘制 df1 的收盘价、5日均线、20日均线

df1.set_index("日期")['收盘'].plot()
df1.set_index("日期")['收盘'].rolling(5).mean().plot()
df1.set_index("日期")['收盘'].rolling(20).mean().plot()

 

指数移动平均值(EMA)

根据 df1 计算 EMA20

df1['EMA20'] = df1['收盘'].ewm(span=20,min_periods=0,adjust=False,ignore_na=False).mean()

MACD

计算 df1 的 MACD 指标

exp1 = df1['收盘'].ewm(span=12, adjust=False).mean()
exp2 = df1['收盘'].ewm(span=26, adjust=False).mean()
df1['MACD'] = exp1 - exp2
df1['Signal line'] = df1['MACD'].ewm(span=9, adjust=False).mean()

布林指标

计算并绘制布林指标,计算方法参考百度百科

df1['former 30 days rolling Close mean'] = df1['收盘'].rolling(20).mean()
df1['upper bound'] = df1['former 30 days rolling Close mean'] + \2*df1['收盘'].rolling(20).std()  # 在这里我们取20天内的标准差
df1['lower bound'] = df1['former 30 days rolling Close mean'] - \2*df1['收盘'].rolling(20).std()import matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['Songti SC'] #设置中文,如果本句代码导致失效,可以点击https://mp.weixin.qq.com/s/WKOGvQP-6QUAP00ZXjhwegdf1.set_index("日期")[['收盘', 'former 30 days rolling Close mean','upper bound','lower bound' ]].plot(figsize=(16, 6))plt.show()

 

日期移动 

移动值

将 df1 的索引设置为日期,将 df1 数据向后移动一天

df1.set_index('日期').shift(1)

 

移动索引

将 df1 的索引设置为日期,并将全部日期向后移动一天

import datetime
df1.set_index('日期').shift(freq=datetime.timedelta(1))

 

日期重采样 

日 -> 周

按周对 df1 进行重采样,保留每周最后一个数据

df1.set_index('日期').resample('W').last()

日 -> 月

按月对 df1 进行重采样,保留每月最后一个数据

df1.set_index('日期').resample('M').last()

分钟 -> 日

按日对 df2 进行重采样,保留每天最后一个数据

df2.set_index('时间').resample('D').last()

 

低频 -> 高频

将 df2 的 5分钟 数据改为 3分钟,缺失数据向前填充

df_3min = df2.set_index('时间').resample('3min').last()
df_3min.ffill()

总结 

        通过这次Python项目实战,我学到了许多新的知识,这是一个让我把书本上的理论知识运用于实践中的好机会。原先,学的时候感叹学的资料太难懂,此刻想来,有些其实并不难,关键在于理解。在这次实战中还锻炼了我其他方面的潜力,提高了我的综合素质。首先,它锻炼了我做项目的潜力,提高了独立思考问题、自我动手操作的潜力,在工作的过程中,复习了以前学习过的知识,并掌握了一些应用知识的技巧等

在此次实战中,我还学会了下面几点工作学习心态:

1)继续学习,不断提升理论涵养。在信息时代,学习是不断地汲取新信息,获得事业进步的动力。作为一名青年学子更就应把学习作为持续工作用心性的重要途径。走上工作岗位后,我会用心响应单位号召,结合工作实际,不断学习理论、业务知识和社会知识,用先进的理论武装头脑,用精良的业务知识提升潜力,以广博的社会知识拓展视野。

2)努力实践,自觉进行主角转化。只有将理论付诸于实践才能实现理论自身的价值,也只有将理论付诸于实践才能使理论得以检验。同样,一个人的价值也是透过实践活动来实现的,也只有透过实践才能锻炼人的品质,彰显人的意志。

3)提高工作用心性和主动性。实习,是开端也是结束。展此刻自我面前的是一片任自我驰骋的沃土,也分明感受到了沉甸甸的职责。在今后的工作和生活中,我将继续学习,深入实践,不断提升自我,努力创造业绩,继续创造更多的价值。

这次Python实战不仅仅使我学到了知识,丰富了经验。也帮忙我缩小了实践和理论的差距。在未来的工作中我会把学到的理论知识和实践经验不断的应用到实际工作中,为实现理想而努力。

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

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

相关文章

图形化跟踪个股RPS走势,挖掘出源源不断的牛股!股票量化分析工具QTYX-V2.5.7...

概述RPS选股策略 威廉欧奈尔把投资理念集中于他自创的CANSLIM选股系统&#xff0c;凭借着这个系统驰骋股票市场数十年&#xff0c;无论在牛市还是熊市&#xff0c;这个系统都是最稳定、表现最好的系统之一。 CANSLIM选股系统中有一个RPS指标&#xff08;Relative Price Strengt…

【树莓派烹饪日记】#1 系统安装与环境配置

0 引言 这个系列用于记录入门树莓派期间踩的各种坑及解决办法。 只记录一些我觉得重要的地方&#xff0c;不一定很全面。 目前暂定的一个目标是拿树莓派接管小爱音箱并接入ChatGPT。 今天的计划是将一个新的树莓派主板 烧录并启动系统系统配置安装VPN安装conda环境 需要用到…

RWKV配上ChatGPTBox让我们在浏览器中感受AI带来的魅力

这次我们来讲讲RWKV搭配ChatGPTBox结合使用带来的功能体验&#xff0c;这两个项目都是同一个大神创建的&#xff0c;完全可以无缝搭配进行使用。 以下是我之前在本地部署了AI模型RWKV的教程&#xff0c;如果还没有本地部署过AI的童鞋可以查看我之前发布的教程&#xff0c;在自…

总结谷歌身份验证器 Google Authenticator 的详细使用方法

谷歌身份验证器Google Authenticator是谷歌推出的一款动态口令工具&#xff0c;解决大家各平台账户遭到恶意攻击的问题&#xff0c;一般在相关的服务平台登陆中除了用正常用户名和密码外&#xff0c;需要再输入一次谷歌认证器生成的动态口令才能验证成功&#xff0c;相当于输入…

快速接入Google两步认证Google Authenticator

(一)介绍 既然来看该文章就应该知道Google的两步认证是干什么的&#xff0c;这边再提供一次app的下载链接 (apkpure搜索谷歌身份验证器) 验证原理讲解&#xff1a; 在数据库中查找该登陆用户之前绑定的32位随机码&#xff08;该码一般会存入数据库&#xff09;调用API传入32位…

身份验证器 Authenticator 插件

1.插件支持浏览器 ChromeFirefoxEdge 2.关键特性 通过扫描二维码添加账号使用密码加密数据在浏览器之间同步数据备份数据到云服务或导出数据到文件智能过滤和搜索 官网地址: Authenticator Extension 官方说明文档&#xff1a;What is Authenticator Extension? | Authen…

前后端身份验证

1、web 开发模式 【】基于服务端渲染的传统 Web 开发模式 【】基于前后端分离的新型 Web 开发模式&#xff1a;依赖于 Ajax 技术的广泛应用。后端只负责提供 API 接口&#xff0c;前端使用 Ajax 调用接口的开发模式 2、身份认证 【】服务端渲染推荐使用 Session 认证机制 【】…

生信工作流框架搭建 | 04-nextflow与Slurm高性能计算

目录 生信工作流框架搭建 | 04-nextflow与Slurm高性能计算前情提要什么是HPC高性能计算什么是slurm nextflow配置注意事项下期预告 生信工作流框架搭建 | 04-nextflow与Slurm高性能计算 本篇为biodoge《生信工作流框架搭建》系列笔记的第5篇&#xff0c;该系列将持续更新。 前情…

评价基于GPT和Bert的方法并用于生信文本识别PPI

检测蛋白质-蛋白质相互作用&#xff08;PPI&#xff09;对于理解遗传机制、疾病发病机制和药物设计至关重要。然而&#xff0c;随着生物医学文献的快速增长&#xff0c;越来越需要自动和准确地提取PPI以促进科学知识发现。预训练语言模型&#xff0c;例如生成式预训练Transform…

Limma | 三个组的差异分析怎么分析做呢!?~

1写在前面 高考结束了&#xff0c;不知道各位考生考的怎么样&#xff0c;这种时候总是几家欢喜几家忧&#xff0c;但这也是实现阶级流动的最佳机会。&#x1f914; 回想自己高考过去10几年了&#xff0c;不能说学了医后悔吧&#xff0c;只能说后悔至极&#xff0c;苦不堪言啊&a…

生信分析案例 Python简明教程 | 视频13

开源生信 Python教程 生信专用简明 Python 文字和视频教程 源码在&#xff1a;https://github.com/Tong-Chen/Bioinfo_course_python 目录 背景介绍 编程开篇为什么学习Python如何安装Python如何运行Python命令和脚本使用什么编辑器写Python脚本Python程序事例Python基本语法 数…

生信分析案例 Python简明教程 | 视频12

开源生信 Python教程 生信专用简明 Python 文字和视频教程 源码在&#xff1a;https://github.com/Tong-Chen/Bioinfo_course_python 目录 背景介绍 编程开篇为什么学习Python如何安装Python如何运行Python命令和脚本使用什么编辑器写Python脚本Python程序事例Python基本语法 数…

生信分析案例 Python简明教程 | 视频11

开源生信 Python教程 生信专用简明 Python 文字和视频教程 源码在&#xff1a;https://github.com/Tong-Chen/Bioinfo_course_python 目录 背景介绍 编程开篇为什么学习Python如何安装Python如何运行Python命令和脚本使用什么编辑器写Python脚本Python程序事例Python基本语法 数…

12款好用的Visual Studio插件,最后一款良心推荐

工欲善其事&#xff0c;必先利其器,整理的一些我必装的12款Visual Studio插件&#xff0c;希望你们能get到。 效率工具前文传送门&#xff1a; adb常用命令总结 程序员你可以考虑安装的15款谷歌插件 推荐20套实战源码 99%的人不知道搜索引擎的6个技巧 12款好用的Visual Stu…

七年磨一剑!苹果王炸产品Vision Pro诞生,未来已来

这是第一款「不见却可透见」的苹果产品 等了整整七年&#xff01;2023年6月5日&#xff0c;WWDC23大会上&#xff0c;苹果发布首款头显Vision Pro&#xff0c;Vision Pro 可以算是苹果公司自 2015 年 Apple Watch 首次亮相以来最大的硬件产品发布&#xff0c;或许它会彻底改变数…

chatgpt赋能python:人机对话Python——让交互更智能

人机对话Python——让交互更智能 随着科技的不断发展&#xff0c;人类与机器之间的交互方式也在不断改变。从最初的键盘输入和鼠标点击&#xff0c;到现在的语音识别和手势交互&#xff0c;我们与计算机之间的交互方式日益智能化和自然化。人机对话技术就是其中一种重要的交互…

紫砂典故之“蔓生石瓢”

紫砂典故之“蔓生石瓢”

如何区分纯正紫砂底料

首先大家要区分一个概念&#xff0c;就是纯正的底料和调砂不是同一个概念&#xff0c;调砂其实是紫泥中的石英颗粒&#xff0c;调砂可以增强泥料的可塑性&#xff0c;增强了透气性&#xff0c;以及增加质感。纯的底料&#xff0c;不是那么坚硬&#xff0c;经过一到两天&#xf…

18把紫砂壶上了邮票:今起来厦展出

制壶高工沈龙娣&#xff0c;花了1年时间&#xff0c;纯手工打造了18把紫砂壶&#xff0c;然后由当代著名花鸟画家张贤明院长赴阳羡亲绘壶身&#xff0c;最后请中国第一批省级大师鲍仲 梅篆刻。最为难得的是&#xff0c;这套紫砂壶还上了邮票&#xff0c;由国家邮政总局限量发行…

怎么看安装包是什么bit的_什么是紫砂壶太阳线,怎么看?-紫砂壶

经常能在紫砂壶内的底部&#xff0c;见到一种由中心向四周呈发散状&#xff0c;如太阳光芒线的泥痕&#xff0c;称之为“太阳线”。 常见的模具壶&#xff0c;一般都是以“外模内挡”的成型方式为主&#xff0c;“挡”成后&#xff0c;壶的内壁表面会因受力不均而出现凹凸不平&…