目录​​​​​​​

针对股票数据的项目分析实战

1.数据预处理

2.调用to_dsv方法把数据保存到本地

3.删除unnamed列

4.找出所有收盘比开盘上涨超过3%的日期

​5. 找出所有收盘比开盘跌幅超过2%的日期

6.估计收益

7.计算均线

8.统计金叉和死叉的时期


针对股票数据的项目分析实战

1.数据预处理

首先需要使用pip install tushare安装tushare第三方包, Tushare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集清洗加工数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。考虑到Python pandas包在金融量化分析中体现出的优势,Tushare返回的绝大部分的数据格式都是pandas DataFrame类型,非常便于利用pandas/NumPy/Matplotlib进行数据分析和可视化。当然,如果您习惯了用Excel或者关系型数据库做分析,您也可以通过Tushare的数据存储功能,将数据全部保存到本地后进行分析。

tushare网站:Tushare -财经数据接口包

获取一只股票的数据。

import numpy as np
import pandas as pd
import tushare as ts#获取股票数据
#code 为股票代码 start 为获取数据的开始时间,end为结束时间
df=ts.get_k_data(code='002354',start='2021-12-10',end='2022-01-5')
print(df)

2.调用to_dsv方法把数据保存到本地

读取刚刚保存的本地数据

3.删除unnamed列

查看数据相关信息

将data的数据类型改为时间序列

修改日期作为行索引

4.找出所有收盘比开盘上涨超过3%的日期

5. 找出所有收盘比开盘跌幅超过2%的日期

6.估计收益

假如2010年1月1日开始, 每月第一个交易日以开盘价买入该股票,每年最后一个交易日收盘价卖出,到今天为止,ps2022买的卖不出去,收益如何?

7.计算均线

在计算均值时,可以利用rolling函数

8.统计金叉和死叉的时期

完整代码如下:

import numpy as np
import pandas as pd
import tushare as ts
import matplotlib.pyplot as plt#用以正常显示中文
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号#获取股票数据
#code 为股票代码 start 为获取数据的开始时间,end为结束时间
df=ts.get_k_data(code='600519',start='2008-01-01')#保存数据
df.to_csv('maotai.csv')#读入刚刚保存的文本数据
df=pd.read_csv('maotai.csv')
# print(df.head(5))#删除unnameed列
df.drop(labels='Unnamed: 0',axis=1,inplace=True)
# print(df.head(5))
#查看数据相关信息
# print(df.info())#将date数据改为时间序列
df['date']=pd.to_datetime(df['date'])
# print(df.info())
#将日期修改为行索引
df.set_index('date',inplace=True)
# print(df.head(5))#找出所有收盘比开盘上涨3%的日期 将布尔值作为行索引 取出true对应的行数据 忽略false对应的行数据
df1=df.loc[(df['close']-df['open'])/df['open']>0.03].index
# print(df1)#找出所有收盘比开盘跌涨2%的日期 将布尔值作为行索引 取出true对应的行数据 忽略false对应的行数据
df2=df.loc[(df['close']-df['open'])/df['open']<-0.02].index
# print(df2)#估算收益
df3=df['2010-01':'2021-01']#切片
# print(df3)#取出每一个月第一个交易日数据
df3_monthly=df3.resample('m').first()
# print(df3_monthly)
#买入的总金额
cost=df3_monthly['open'].sum()*100
#取出每一年最后一个交易日 2022的不卖作切片处理
df3_yearly=df3.resample('A').last()[:-1]
#卖出的总金额
resv=df3_yearly['close'].sum()*1200
money=resv-cost
# print("利润为{}".format(money))#计算5日均线
# ma5=df['close'].rolling(5).mean()[4:]
# ma30=df['close'].rolling(30).mean()[29:]
#绘制曲线
# plt.plot(ma5,color="r", label="5日均线")
# plt.plot(ma30,color="b", label="30日均线")
# plt.legend(loc='best')
# plt.show()#输出金叉和死叉的日期
#统一切片
df=df.dropna()
df['ma5']=df['close'].rolling(5).mean()[30:]
df['ma30']=df['close'].rolling(30).mean()[30:]
df=df[30:]
gold_cross=[]
death_cross=[]
# #判别金叉死叉 方法1
# for i in range(len(df)):
#     if df['ma5'][i]>df['ma30'][i] and df['ma5'][i-1]<df['ma30'][i-1]:
#         gold_cross.append(df.index[i])
#     if df['ma5'][i]<df['ma30'][i] and df['ma5'][i-1]>df['ma30'][i-1]:
#         death_cross.append(df.index[i])
# #保留年月日
# gold_cross = [i.strftime("%Y%m%d") for i in gold_cross]
# death_cross = [i.strftime("%Y%m%d") for i in death_cross]
# print(gold_cross)
# print(death_cross)#方法2
s1=df['ma5']>df['ma30']
s2=df['ma5']<df['ma30']death_cross=df[s1&s2.shift(1)].index
gold_cross=df[~(s1|s2.shift(1))].index
print(death_cross)
print(gold_cross)

数据分析项目实战day1相关推荐

  1. 【数据分析项目实战】Python爬取BOSS直聘岗位和数据分析

    说明:这是一个数据分析项目全流程(附带项目实例),本篇教程来源于网络,胖哥对此进行了完整的梳理,并把用到的数据+代码完全奉上.如需数据+完整代码可以直接到文章最后获取. 这里面的数据,我只爬取了部分, ...

  2. 福布斯系列之数据采集 | Python数据分析项目实战

    1 数据采集概述 开始一个数据分析项目,首先需要做的就是get到原始数据,获得原始数据的方法有多种途径.比如: 获取数据集(dataset)文件 使用爬虫采集数据 直接获得excel.csv及其他数据 ...

  3. 【项目实战】Python基于波动率模型(ARCH和GARCH)进行股票数据分析项目实战

    说明:这是一个机器学习实战项目(附带数据+代码+文档+代码讲解),如需数据+代码+文档+代码讲解可以直接到文章最后获取. 1.项目背景 在衍生产品定价和风险管理中,对当前波动率是很感兴趣的,这是因为需 ...

  4. 数据分析项目实战项目一:CPC广告优化以及bilibili订单分析(下)

    第一章:电商平台数据分析思路与bilibili会员购介绍 1.1互联网电商平台数据分析的一般思路 互联网电商平台数据分析的一般思路一般分为以下三步:找出问题,分析问题,解决问题.其中,找出问题包括描述 ...

  5. 福布斯系列之数据分析思路篇 | Python数据分析项目实战

    福布斯每年都会发布福布斯全球上市企业2000强排行榜(Forbes Global 2000),这个排行榜每年发布的时候,国内外总有新闻会热闹的讨论一番,但很少见到比较全面的分析. 因此才有了这样一个想 ...

  6. 最新高清仿驴妈妈旅行网大数据分析项目实战

    目录 第1章 大数据基本技能储备 1.1.项目介绍.mp4 1.2.hadoop介绍.mp4 1.3.SSH免密码登录.mp4 1.4.JAVA安装.mp4 1.5.Hadoop安装及验证.mp4 1 ...

  7. 数据分析项目实战项目二:入驻商用户画像体系

    第一章:电商平台入驻商数据分析思路与亚马逊相关信息介绍 1.1 互联网电商平台入驻商数据分析的一般思路 互联网电商平台入驻商数据分析的一般思路一般分为以下三步:获得数据,分析业务需求,产生数据成果.其 ...

  8. 银行贷款客户拉新活动分析——数据分析项目实战

    1.案例背景 Thera Bank是一家拥有不断增长客户群的银行.这银行中大多数客户的存款规模都是不一样的.由于贷款业务的客户数量很少,所以银行希望有效地将存款用户转化为贷款用户以此扩大贷款业务量的基 ...

  9. 大数据分析项目实战--天猫订单综合分析

    天猫订单综合分析 分析订单转化率.销量趋势.地域分布统计等. 文章目录 天猫订单综合分析 一.数据背景 二.分析目的 三.读取数据 导入相关包 读取并查看数据 四.处理数据 规范字段名称 重复值与缺失 ...

最新文章

  1. 山东大学微生物国家重点实验室刘双江组招聘(肠道微生物方向)
  2. Winform中使用DevExpress时给控件添加子控件的方法
  3. 记录今天写的几个正则,数字范围的校验
  4. 与太多男人一起工作有害健康
  5. linux创建软连接记录
  6. Audio播放流程(三)---NuPlayer流程之setAudioStreamType以及prepare
  7. STM32串口下载程序
  8. javaweb项目实训总结_java web实训心得体会
  9. APS计划排程系统和生产排产系统,需要哪些基础资料(一)
  10. vlog短视频_适用于Vlog或视频网络的20+ WordPress主题
  11. 计算机系女学霸男生追,杨紫李现解锁恋爱新姿势:吃最甜的糖,追最燃的梦
  12. 如何混合使用Linux和Windows
  13. android高德地图自定义地图,(android地图开发) 高德地图自定义对话框
  14. cryptographic primitives(密码学原语 )
  15. 【ASE入门学习】ASE入门系列十二——Ramp采样(渐变采样)
  16. 网狐荣耀需要什么服务器系统,网狐荣耀服务器负载均衡
  17. 获取微信QQ好友高精地址
  18. Java--Java语言基础
  19. u盘无法识别怎么办?看完不愁数据恢复
  20. PDF只读模式如何取消?

热门文章

  1. 高性能Web服务器:Nginx
  2. 杰理之提示音配置【篇】
  3. 2022爆火的AIGC,能给AI续命吗
  4. 云管平台可以应用于哪些行业?传统行业可以吗?
  5. H3C DIS命令记录
  6. Qbao Network 1024周年庆, 邀请Q 宝宝和金主爸爸来抱锦鲤啦!
  7. 无法启动组件[StandardEngine[Catalina].StandardHost[localhost].StandardContext报错
  8. JNI和NKD入门系列一,纯java工程下JNI的开发流程(mac系统)
  9. 计算机科学 hafu,不输加州!美国这个州的名校远比你想象的多!
  10. 契约锁助力仓库单据电子签:货物“入-检-调-提-出”再提速