数据分析练习

股票数据练习

import tushare as ta
import pandas as pd
from pandas import DataFrame, Series
import numpy as np

# 获取股票历史数据, code后面是字符串形式的股票代码
df = ta.get_k_data(code='600519', start='2000-01-01')

# 将数据存到本地
df.to_csv('./maotai.csv')

# 将本地数据读入到df
dataf = pd.read_csv('./maotai.csv')

# 删除数据第一列,label指定列名,axis=1表明列
# axis=0表明行,inplace将处理后的数据覆盖处理前的数据
dataf.drop(labels='Unnamed: 0', axis=1, inplace=True)

# 将time列转为时间序列类型
dataf['date'] = pd.to_datetime(dataf['date'])

# 将date作为源数据的行索引
dataf.set_index('date', inplace=True)

# 输出股票所有收盘价比开盘价涨3%以上的日期
# 在分析的过程中如果产生了布尔值,则下一步将布尔值作为源数据的行索引
print(dataf.loc[(dataf['close'] - dataf['open'])/dataf['open'] > 0.3].index)

# 输出股票所有开盘比前日收盘跌幅超过2%的日期
# .shift()可以将某列数据整体上下移动
print(dataf.loc[(dataf['open'] - dataf['close'].shift(1))/dataf['close'].shift(1) < -0.02].index)

# 一个人从2010年1月1日开始,每个月第一个交易日买入一手股票(100支),然后在每年的最后一个交易日卖出所有股票,股票用开盘价,算收益
new_df = dataf['2010-01':]

# 买股票,找每个有第一个交易日的行数据
# 根据月份从原始数据中提取指定数据
df_monthly = new_df.resample('M').first()
cost = df_monthly['open'].sum()*100

# 卖出到手的钱,2022年还不能卖
# 每年最后一行数据
df_year = new_df.resample('A').last()[:-1]
resv = df_year['open'].sum()*1200

# 最后手中剩余的股票需要估价,并计算到总收益中
# 用昨天的收盘价作为剩余股票单价
left_money = new_df['close'][-1]*1100

# 总收益
resv + left_money - cost
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值