pandas案例--股票预测任务

需求:
1.使用tushare白获取某股票的历史行情数据
2.输出该股票所有收盘闭开盘上涨30%以上的日期
3.输出该股票所有开盘闭前日收盘跌幅超过2%的日期
4假如我从2010年1月1日开始,每月第一个交易日买入1收股票,每年最后一个交易日卖出所有股票, 到尽头为止,我的收益如何

import tushare as ts
import pandas as pd
import numpy as np

#获取股票的历史数据

df=ts.get_k_data(code='600519',start='2000-01-01')

#保存到本地

df.to_csv(“./maotai.csv”)

#数据预处理

#删除某一列

df=df.drop(labels=“Unnamed: 0”,axis=1)

也或者可以是

df.drop(labels=“Unnamed: 0”,axis=1,inplace = True)

#查看每一列对应的数据类型

df.info()

#将time这列转为时间类型序列

df["date"]=pd.to_daytime(df["date"])

#将df["date"]这列作为行索引

df.set_index(df['date'],inplace=True)

#第二步:输出该股票所有收盘闭开盘上涨30%以上的日期

df.loc[(df['open'] - df['close'])/df['open']>0.03].index

第三步:输出该股票所有开盘闭前日收盘跌幅超过2%的日期

df.loc[(df["open"]-df['close'].shift(1))/df['close'].shift(1)<-0.02 ].index
#第四步:假如我从2010年1月1日开始,每月第一个交易日买入1收股票,每年最后一个交易日卖出所有股票,到尽头为止,我的收益如何?

#提取数据
new_df=df['2010-01':'2020-02']
#买股票:需要找到某个月的第一个交易日对应的行数据
#找到每个月的第一天
df_monthly=new_df.resample('M').first()#数据的重新取样
#买入股票话费的总金额
cost=df_monthly['open'].sum()*100
#卖出股票的钱:特殊情况,2020年买入的股票卖不出去
#且将2020年最后一行切出去
df_yearly=new_df.resample('A').last()[:-1]
#卖出股票的钱到手的钱
resv=df_yearly['open'].sum()*1200
#最后手中剩余的股票需要菇凉其价值计算到总收益中
last_monry=200*new_df['close'][-1]
#计算总收益
resv + last_monry -cost

你可能感兴趣的:(机器学习,人工智能)