码迷,mamicode.com
首页 > 其他好文 > 详细

tush

时间:2017-04-12 02:35:22      阅读:444      评论:0      收藏:0      [点我收藏+]

标签:sam   .so   list   变量   otn   first   hang   http   output   

生成时间序列:

dates = pandas.date_range(‘2013-01-01‘,periods = 6)

Pandas读取excel数据:

df=pd.read_excel("mystock.xls")

DF排序:

df=df.sort(‘data‘,ascending=False)

 获取单个年月日再组合:

 

import datetime

t = datetime.date(datetime.date.today().year,                  datetime.date.today().month,datetime.date.today().day)

print(t)

输出:2016-09-16
start_day=start_day.strftime("%Y-%m-%d")

    end_day=end_day.strftime("%Y-%m-%d")

 

import datetime

now = datetime.datetime.now()

y = now.year
m = now.month
d = now.day

http://www.cnblogs.com/wumac/p/5876572.html

 

创业板平均市盈率

import os
import pandas as pd

stock_code_list = []

for root,dirs,files in os.walk(stock data):
    if files:
        for f in files:
            if .csv in f:
                stock_code_list.append(f.split(.csv)[0])

all_stock = pd.DataFrame()
for code in stock_code_list:
    if code[2]!=3:
        continue
    print(code)
    stock_data = pd.read_csv(stock data/+code+.csv,parse_dates=[1])
    stock_data = stock_data[stock_data[PE_TTM].notnull()]#删除PE_TTM为空的行
    
    #PE_TTM = 总市值/净利润_TTM,这里通过这个公式计算净利润_TTM
    stock_data[净利润]=stock_data[market_value]/stock_data[PE_TTM]
    #选取需要的字段,去除其他不需要的字段
    stock_data = stock_data[[code,date,market_value,净利润]]
    #将该股票的合并
    all_stock = all_stock.append(stock_data,ignore_index=True)
#基于all_stock表格,通过groupby语句,计算创业板股票每天的平均市盈率
#通过groupby语句计算每天所有股票的市值之各、净利润之和,以及当天交易的股票的数量    
output  = all_stock.groupby(date)[[market_value,净利润]].sum()
output[股票数量] = all_stock.groupby(date).size()
#平均市盈率=所有股票的市值之和/所有股票的净利润之和
output[创业板平均市盈率] = output[market_value]/output[净利润]
#算好的数据输出
output.to_csv(创业板平均市盈率.csv,encoding=gbk)

 

 

将日线数据转为周线、月线或其他周期

import os
import pandas as pd

stock_data = pd.read_csv(stock data/sh600898.csv,parse_dates=[1])
#设定转换周期period_type  转换为周是‘W‘,月‘M‘,季度线‘Q‘,五分钟‘5min‘,12天‘12D‘
period_type = W
#将[date]设定为    index   inplace是原地修改,不要创建一个新对象
stock_data.set_index(date,inplace=True)
#进行转换,周线的每个变量都等于那一周中最后一个交易日的变量值

period_stock_data = stock_data.resample(period_type,how=last)
#周线的change等于那一周中每日change的连续相乘
period_stock_data[change] = stock_data[change].resample(period_type,how=lambda x:(x+1.0).prod()-1.0)
#周线的open等于那一周中第一个交易日的open

period_stock_data[open] = stock_data[open].resample(period_type,how=first)
#周线的high等于那一周中的high的最大值

period_stock_data[high] = stock_data[high].resample(period_type,how=max)
#周线的low等于那一周中的low的最大值

period_stock_data[low] = stock_data[low].resample(period_type,how=min)
#周线的volume和money等于那一周中volume和money各自的和
period_stock_data[volume] = stock_data[volume].resample(period_type,how=sum)
period_stock_data[money] = stock_data[money].resample(period_type,how=sum)
#计算周线turnover
period_stock_data[turnover] = period_stock_data[volume]/                                (period_stock_data[traded_market_value]/period_stock_data[close])
#股票在有些周一天都没有交易,将这些周去除
period_stock_data = period_stock_data[period_stock_data[code].notnull()]
period_stock_data.reset_index(inplace=True)
#导出数据
period_stock_data.to_csv(week_stock_data.csv,index=False)

 

tush

标签:sam   .so   list   变量   otn   first   hang   http   output   

原文地址:http://www.cnblogs.com/ttrrpp/p/6696881.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!