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


    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)
  • 相关阅读:
    Android对话框自定义标题
    JSONObject和JSONArray的关系
    Java的List排序
    重写onStart()函数
    SSH框架执行自己定义的SQL语句
    nested exception is org.hibernate.QueryException: could not resolve property
    java.lang.NullPointerException org.apache.struts2.impl.StrutsActionProxy.getErrorMessage(StrutsActionProxy.java:69)
    Java项目打包部署war文件
    一道腾讯面试题
    SSH服务器与Android通信(3)--Android客户端发送数据
  • 原文地址:https://www.cnblogs.com/wumac/p/6076292.html
Copyright © 2020-2023  润新知