概述
股票分析
tushare
** pip install tushare**
1 需求分析
使用tushare包获取某股票的历史行情数据。
输出该股票所有收盘比开盘上涨3%以上的日期。
输出该股票所有开盘比前日收盘跌幅超过2%的日期。
假如我从2010年1月1日开始,每月第一个交易日买入1手股票,每年最后一个交易日卖出所有股票,到今天为止,我的收益如何?
2 实现
import tushare as ts
import pandas as pd
from pandas import Series,DataFrame
import numpy as np
# 1.获取股票历史交易数据
# 使用.get_k_data()方法,code参数写股票代码,start参数写起始时间
df = ts.get_k_data(code='600519',start='1980-01-01')
df.head()
# 2.将数据进行本地文件的存储
# .to_csv('文件路径')
df.to_csv('./maotai.csv')
# 3.将本地存储的文本数据进行df的读取
# .pd.read_csv('文件路径')
df = pd.read_csv('./maotai.csv')
df.head()
# 4.有无用的列,删除指定的列,axis=1是列,labels指定标签Unnamed:0,inplace=True代表替换原表
df.drop(labels='Unnamed:0',axis=1,inplace=True)
df.head()
# 5.info返回值的信息,每一列元素的数据类型,每一类中非空元素的个数
df.info()
# 将date列由字符串类型转换成时间序列类型, .to_datetime(字符串类型)
df['date'] = pd.to_datetime(df['date'])
# 将date列作为原始数据的行索引
df.set_index('date',inplace=True)
df.columns
df.index
# 6.输出该股票所有收盘比开盘上涨3%以上的日期,其实就是(收盘-开盘)/ 开盘 > 0.03,loc是取行,index是取索引,就拿出所有的日期了
df.loc[ (df['close']-df['open']) / df['open'] > 0.03 ].index
# 7.输出该股票所有开盘比前日收盘跌幅超过2%的日期,(开盘-前日收盘)/前日收盘 < -0.02
df.loc[(df['open'] - df['close'].shift(1)) / df['close'].shift(1) < -0.02].index
# 8.假如我从2010年1月1日开始,每月第一个交易日买入1手股票,每年最后一个交易日卖出所有股票,到今天为止,我的收益如何?
data = df['2010':'2020']
data
# 数据重新取样
data_monthly = data.resample(rule='M').first()
data_monthly.head()
# cost
cost = data_monthly['close'].sum()*100
# 买股票花费
data_yearly = data.resample(rule='A').last()[:-1]
data_yearly
# 卖股票收钱
recv = data_yearly['open'].sum()*1200
recv
# 剩余股票的实际价值
price = data['close'][-1]
last_money = price*1200
# 总收益
recv+last_money-cost
最后
以上就是动听鼠标为你收集整理的python数据分析03--DataFrame基础操作巩固-股票分析股票分析的全部内容,希望文章能够帮你解决python数据分析03--DataFrame基础操作巩固-股票分析股票分析所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复