数据分析 | Pandas 200道练习题,每日10道题,学完必成大神(8)

news2025/2/23 15:03:48

文章目录

    • 前期准备
    • 1. 将收盘价5日均线,20日均线与原始数据绘制在同一个图上
    • 2. 按周为采样规则,取一周收盘价的最大值
    • 3. 绘重制采样数据与原始数据
    • 4. 将数据往后移动5天、
    • 5. 将数据向前移动5天
    • 6. 使用expending函数计算开盘价的移动窗口的均值
    • 7. 绘制上一题的移动均值与原数据的折线图
    • 8. 计算布林线指标
    • 9. 计算布林线指标进行绘制

本篇文章主要是一些窗口函数的使用,以及一些股票分析中常用的一些方法,日均线的了解与绘制,重采样,布林线指标。本篇文章涉及到的统计学知识较多,比较难以理解,对于统计学的知识作为一名数据分析师是必须要掌握的

前期准备

接下来的操作是基于上次的数据进行操作,主要的准备就是将数据的空值删除,将日期函数设置成索引

# 前期准备
import pandas as pd
import numpy as np
# 导入绘图工具
from matplotlib import pyplot as plt
# 使图形中的中文正常编码显示
plt.rcParams['font.sans-serif'] = ['SimHei']
# 使坐标轴刻度表签正常显示正负号
plt.rcParams['axes.unicode_minus'] = False
df = pd.read_excel(r'D:\Python work space\jupyter\Pandas必刷100道题\600000.SH.xls')
df.dropna(axis=0,how='any',inplace=True)

df.set_index('日期',inplace=True)
df

1. 将收盘价5日均线,20日均线与原始数据绘制在同一个图上

均线又叫移动平均线(Moving Average),常简称为M或MA,它是以道琼斯的“平均成本概念”为理论基础,采用统计学中“移动平均”原理,将一段时期内的价格平均值连成一条曲线,以此来显示股票价格的历史波动情况,进而反映股价未来发展趋势的技术分析方法,是道氏理论的形象化表述。

绘制了三种图像,原数据、5日均线,20日均线

plt.figure(dpi=40,figsize=(24,8))  # 设置画布的大小
df['收盘价(元)'].plot(color='r',linestyle='--')  #设置线的颜色和线的形状
df['收盘价(元)'].rolling(5).mean().plot(color='g' )
df['收盘价(元)'].rolling(20).mean().plot(color='b')

在这里插入图片描述

2. 按周为采样规则,取一周收盘价的最大值

因为索引为时间索引,可以使用时间索引操作一些于世间相关的内容

df['收盘价(元)'].resample("W").max()   # 取每一周的最大值
df['收盘价(元)'].resample("M").max()   # 取每月的最大值

在这里插入图片描述

3. 绘重制采样数据与原始数据

重采样数据 将时间序列从一个频率转换到另一个频率得的过程
举个简单的例子 原来每天一个参数,可以重采样为每7天采用一个

plt.figure(dpi=40,figsize=(20,12))
df['收盘价(元)'].plot()
df['收盘价(元)'].resample('7D').max().plot()  # 7日中的最大值

4. 将数据往后移动5天、

# 将数据往后移动5天
df.shift(5)

在这里插入图片描述

5. 将数据向前移动5天

# 将数据向前移动5天
df.shift(-5)

在这里插入图片描述

6. 使用expending函数计算开盘价的移动窗口的均值

expending函数和rolling函数很相似,都是窗口函数,rolling函数的窗口是固定的,每次移动一个单位,窗口内的数据不变化;expending函数,窗口内的数据每次多一个,累计计算。
min_periods设置最小观测数量

df['收盘价(元)'].expanding(min_periods=1).mean()

在这里插入图片描述

7. 绘制上一题的移动均值与原数据的折线图

# 绘制上一题的移动均值与原数据的折线图
df['expanding Open mean'] = df['开盘价(元)'].expanding(min_periods=1).mean()
df[['开盘价(元)','expanding Open mean']].plot(figsize=(16,9))

在这里插入图片描述

8. 计算布林线指标

布林线指标,即BOLL指标,其英文全称是“Bollinger Bands”,布林线(BOLL)由约翰·布林先生创造,其利用统计原理,求出股价的标准差及其信赖区间,从而确定股价的波动范围及未来走势,利用波带显示股价的安全高低价位,因而也被称为布林带。其上下限范围不固定,随股价的滚动而变化。
计算公式
中轨线=N日的移动平均线
上轨线=中轨线+两倍的标准差
下轨线=中轨线-两倍的标准差

# 计算布林指标
df['former 30 days rolling Close mean'] = df['收盘价(元)'].rolling(20).mean()
df['upper bound'] = df['former 30 days rolling Close mean'] + 2*df['收盘价(元)'].rolling(20).std()
df['lower bound'] = df['former 30 days rolling Close mean'] - 2*df['收盘价(元)'].rolling(20).std()

9. 计算布林线指标进行绘制

# 计算布林线进行绘制
df[['收盘价(元)','former 30 days rolling Close mean','upper bound','lower bound']].plot(figsize=(16,9))

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

牛客刷题系列(汽水瓶,跳台阶扩展问题,斐波那契凤尾)

牛客刷题系列一:汽水瓶题目链接常规写法简便写法二.跳台阶扩展问题三:斐波那契凤尾很多小伙伴为了刷题发愁 今天为大家推荐一款刷题神奇哦:刷题面试神器牛客 各大互联网大厂面试真题。从基础到入阶乃至原理刨析类面试题 应有尽有,…

云IDE介绍——CSDN开发云

云IDE产品介绍云IDE使用教程 免费使用地址:点击【云IDE】,即可开始创建工作空间啦~ 作者简介:一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页&#xf…

【学习笔记之数据结构】时间复杂度与空间复杂度

一、算法效率 算法在编写成可执行程序后,运行时需要耗费时间资源和空间(内存)资源。因此衡量一个算法的好坏,一般是从时间和空间两个维度来衡量的,即时间复杂度和空间复杂度。   时间复杂度主要衡量一个算法的运行快…

2022年音视频面试题 C/C++/Linux/FFmpeg/webRTC/rtmp/hls/rtsp/ffplay/srs

1)OpenGL 是按照什么架构设计的? OpenGL 的渲染架构是 Client/Server 模式:Client(客户端)指的是我们在 CPU 上运行的一些代码,比如我们会编写 OC/C/Java 代码调用 OpenGL 的一些 API;而 Server…

mybatis学习(1)

使用mybatis也是有一段时间了,但是一直没有系统了解和学习,最近正好有空,索性花点时间熟悉下。 为什么是mybatis? 了解mybatis之前,需要知道什么是"数据库持久层",我的理解,就是将数…

Decoder与Encoder重要组件

Decoder与Encoder重要组件 大家知道,Netty从底层Java通道读到ByteBuf二进制数据,传入Netty通道的流水线,随后开始入站处理。在入站处理过程中,需要将ByteBuf二进制类型,解码成Java POJO对象。这个解码过程&#xff0c…

【Python基础篇020】网络编程初识

文章目录 🦠一、前言 🦠二、软件开发架构 🍀2.1、C/S架构 🍀2.2、B/S架构 🍀2.3、服务端与客户端 🦠三、ip与端口号 🍀3.1、IP地址与端口号常识 🍀3.2、MAC和IP的概念与不同…

实际应用效果不佳?来看看提升深度神经网络泛化能力的核心技术(附代码)

目录 数据增强 📌 技术介绍 📌 手动数据处理&增强 📌 基于 TensorFlow 的数据增强 Dropout 随机失活 📌 技术介绍 📌 基于TensorFlow应用Dropout 💡 L1 和 L2 正则化 📌 技术介绍 …

Mybatis日志框架

文章目录一、 用日志打印代替sout1、sout有什么问题①问题1:I/O影响性能②问题2:无法统一管理③问题3:显得你很low2、使用日志框架的好处①设定级别,统一管理②灵活指定输出位置③自定义日志格式④基于日志分析问题二、最佳用法1、…

设计模式之【单例模式】全解,单例模式实现方式,暴力打破单例模式与解决方案,你真的认识单例模式吗?

文章目录什么是单例模式单例模式的应用场景处理有线程冲突的资源表示全局唯一类单例模式的实现方式1、饿汉式之静态常量2、饿汉式之静态代码块3、懒汉式之线程不安全方式(不推荐)4、懒汉式之加锁方式(不推荐)5、懒汉式之双重锁检查…

波司登的高端化后遗症

(题图) 文|螳螂观察 作者| 青月 受“三重”拉尼娜现象的影响,2022年冬天可能会因为阶段性冷空气的影响出现阶段性低温,且极端寒潮爆发的可能性大。 极端天气越来越多,年年冷冬,有望催化以羽绒服为代表的…

【uni-app从入门到实战】打包

小程序打包发布 1、小程序的打包发布很简单,只需要将程序运行到微信开发者工具中,然后点击右上角的上传按钮即可 我们这里的上传按钮不能点击是因为没有配置微信小程序AppID 打开项目的 manifest.json,选中微信小程序配置,填入微…

Java并发编程——线程间通信

线程间通信一、volatile 关键字二、等待/通知机制三、管道通信四、Thread.join一、volatile 关键字 为什么volatile关键字可以?因为之前说过了,此关键字能保证变量的可见性,也就是说变量一旦被修改,立马能被其他线程所感知 例子如…

拓端tecdat|R语言代做泰坦尼克号随机森林模型案例数据分析

全文链接:http://tecdat.cn/?p4281 原文出处:拓端数据部落公众号 视频:从决策树到随机森林:R语言信用卡违约分析信贷数据实例 从决策树到随机森林:R语言信用卡违约分析信贷数据实例,时长10:11 如果我们对…

Linux:环境变量

基本概念 环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数。 环境变量通常具有某些特殊用途,通常具有全局特性,可以被子进程继承下去 常见的环境变量 PATH : 指定命令的搜索路径 HOME : 指定用户的主工作目录(即用户登陆到Linux系统中…

[Linux]----文件操作(复习C语言+文件描述符)

文章目录前言一、基础概念二、回顾C语言2.1 对文件进行写操作2.2 追加写文件2.3 读文件2.4 简易cat功能总结stdin&stdout&stderr打开文件的方式三、系统文件I/O接口介绍open介绍使用open接口closewriteread四、文件描述符先验证0,1,2就是标准的IO标准输入流标准输出流标…

基于寄生-捕食算法的函数寻优算法

文章目录一、理论基础1、寄生-捕食算法(1)初始化(2)筑巢阶段(鸟窝)(3)寄生阶段(乌鸦-布谷鸟)(4)捕食阶段(乌鸦-猫)2、PPA算法伪代码二、仿真实验与结果分析三、参考文献一、理论基础…

QCC51XX---QACT用户指南

更新记录链接:QCC51XX---系统学习目录_嵌入式学习_force的博客-CSDN博客 QACT安装包不要放在有中文路径下,否则—直会安装报错。适用V7,V7.1 V7.2版本 打开QACT. 打开QACT. 点击 connection configuration 进去之后 点击1,然后点2,选择kalaccess.dll文件, workspace …

【C++】vector的模拟实现不会怎么办?看过来

🌈欢迎来到C专栏~~vector的模拟实现 (꒪ꇴ꒪(꒪ꇴ꒪ )🐣,我是Scort🎓🌍博客主页:张小姐的猫~江湖背景快上车🚘,握好方向盘跟我有一起打天下嘞!送给自己的一句鸡汤🤔&…

MySQL是如何保证主从一致的

一:什么是binlog Binary log(二进制日志),简称Binlog。 Binlog是记录所以数据表结构变更以及表数据修改的二进制日志,不会记录select和show这类操作。Binlog是以事件形式记录,还包括语句所执行的消耗时间。Binlog是MySql Server自…