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


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

    前期准备

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

    # 前期准备
    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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

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

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

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

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

    在这里插入图片描述

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

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

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

    在这里插入图片描述

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

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

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

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

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

    在这里插入图片描述

    5. 将数据向前移动5天

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

    在这里插入图片描述

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

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

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

    在这里插入图片描述

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

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

    在这里插入图片描述

    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()
    
    • 1
    • 2
    • 3
    • 4

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

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

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

  • 相关阅读:
    通过HatchBush对象的()属性可设置HatchBush对象的阴影样式。
    dble安装zk及配置mysql主从模式,在已有mysql存在数据升级mysql配置
    基于boost库的站内搜索引擎
    YOLO系列(YOLOv1-YOLOv5)算法详细介绍和总结
    LeetCode —— 链表
    JavaScript设计模式之责任链模式
    STM32CubeMX教程23 FSMC - IS62WV51216(SRAM)驱动
    dump_stack()
    在windows中搭建vue开发环境
    JS实现瀑布流页面布局
  • 原文地址:https://blog.csdn.net/qq_52007481/article/details/127628941