量化分析中常用语句片段1

量化分析中常用语句片段1

作者:冯德平(山野雪人)

1 用pandas_datareader从网上读取数据
#引入库:
import pandas as pd
import pandas_datareader as pdr
import datetime as dt
import numpy as np

start = dt.datetime(2010, 1, 1)  #起始日
#end = datetime(2021, 1,1)  #结束日,如果结束日是今天,可以省略
data = pdr.get_data_yahoo("600021.SS", start)    #读取上海股票:上海代码+.SS
#data = pdr.get_data_yahoo("000002.SZ", start)   #读取深圳股票:深圳代码+.SZ
#data = pdr.get_data_yahoo("AAPL", start)     #读取美股
#print(data.tail())    #显示最后5行
#print(data.head())    #显示前面5行
#print(data.head(8))      #显示前面8行,类似地显示后面9行:print(data.tail(9))
print(data)     #前后各显示5行

2 从文件读取数据
import pandas as pd

data=pd.read_csv("600882.csv",index_col="Date",parse_dates=["Date"])[["Close","Position"]]
#600882.csv为文件名;index_col="Date"以Date为索引值;
#parse_dates=["Date"])将Date字符串转为日期;[["Close","Position"]]只要Close和Position这两列。
print(data)

3 计算金叉或死叉
#注意前面要引入库import numpy as np
data['Signal'] = data['Adj Close'].rolling(5).mean() - data['Adj Close'].rolling(20).mean()
data['Position'] = (data['Signal'].apply(np.sign) + 1)/2
#np.sign>0时取1,np.sign=0时取0,np.sign<0时取-1,所以data['Position']只能取0或1
#print(data['Signal'])
#print(data['Position'])

4 只要指定的列
data=data[["Adj Close","Signal","Position"]]
#print(data.tail(30))

5 删除指定的列
data.drop(['High', 'Low', 'Open', 'Volume', 'Close'], axis=1, inplace=True)
data.dropna(inplace=True)

6 保存文件
data.to_csv("stock.csv",index=False)   #不要索引值

7 读取当时的时间
import datetime
import time

# 获取当前时间, 其中中包含了year, month, hour, 需要import datetime
today = datetime.date.today()
print("时间:")
print(today)
# 日期转字符串
record_date = today.strftime('%Y-%m-%d')
print("字符串:")
print(record_date)     #年月日
print(today.year)       #年
print(today.month)   #月
print(today.day)        #日
8去掉时间中的时分秒
df["date"] = df["date"].dt.date 
9只要某几个特征值(字段)
df.drop(columns=['volume','outstanding_share','turnover'],inplace=True)   #删除三个特征值
10显示中文
from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']    #显示中文
#mpl.rcParams['axes.unicode_minus']=False     #显示正负号

你可能感兴趣的:(量化分析,python)