模块:Numpy

码字不易,转载请注明出处!十分感谢!

准备工作: 抓取某一只股票的信息,每30min为一组数据,可以参考上一篇:

Note: 只为演示如何统计,更精准的可以抓取每5min为一组数据

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

python免费学习资料以及群交流解答点击即可加入

如何获取股票原始数据

目标:输出每天的开盘,收盘,最高,最低价格,以其中的某一周(5 days, 40组数据)为例

1, 从csv中导入数据,需要有 open, high, close 和low

#import numpy as np
open = np.loadtxt('30min.csv', dtype = float, skiprows = 1, usecols = 2, delimiter=',', encoding = 'utf-8')
high = np.loadtxt('30min.csv', dtype = float, skiprows = 1, usecols = 3, delimiter=',', encoding = 'utf-8')
close = np.loadtxt('30min.csv', dtype = float, skiprows = 1, usecols = 4, delimiter=',', encoding = 'utf-8')
low = np.loadtxt('30min.csv', dtype = float, skiprows = 1, usecols = 5, delimiter=',', encoding = 'utf-8')

打印测试可以得到如下数据,

2,从csv中导入date数据,需要将date转化输出成工作日的格式

from datetime import datetime
def datestr(s):return datetime.strptime(s, '%Y/%m/%d').isoweekday()
#print(datestr('2020/12/7'))dates = np.loadtxt('30min.csv',dtype = str, skiprows = 1, usecols = 0, converters = {0: datestr}, delimiter = ',', encoding = 'utf-8')

打印测试可以得到如下数据,

3, 找到某一周的40组数据,确认第一天的开盘时间和最后一天的收盘时间

close = close[0:40]
dates = dates[0:40]
first_monday = np.ravel(np.where(dates == 1))[-1] #根据csv中的排序找到某一周的第一天
last_friday = np.ravel(np.where(dates == 5))[0] #根据csv中的排序找到某一周的最后一天

打印测试得到如下某一周的40个时间

4, 创建一个数组,用于存储一周内每一天的索引值

day_indices = np.arange(last_friday, first_monday +1)[::-1]
weeks_indices = np.split(day_indices, 5)

打印测试得到如下输出,

5,编写summarize函数,返回一个元组包含这一周每天对应的open, close, high, low

def summarize(a, o, h, c, l):monday_open = o[a[0]]  #monday open是最后一个价格day_high = np.max( np.take(h, a) )  #每天的最高价格day_low = np.min( np.take(l, a) )    #每天的最低价格friday_close = c[a[-1]]  #friday close是第一个价格return('lux', monday_open, day_high, friday_close, day_low)

6,生成每周的数据

weeksummary = np.apply_along_axis(summarize, 1, weeks_indices, open, high, close, low)
print(' ****** open,  high,  close,  low \n', weeksummary)

对比一下表格中的数据信息,结果是匹配的

7, 如果有需要可以保存

np.savetxt('cw36_lux.csv', weeksummary, delimiter = ',', fmt = '%s')    #同30min.csv在同一文件夹下

打开csv之后保存的数据如下

好了,完整的代码如下:

import numpy as np
from datetime import datetimedef datestr(s):return datetime.strptime(s, '%Y/%m/%d').isoweekday()dates, open, high, close, low = np.loadtxt('30min.csv', skiprows = 1, usecols = (0, 2, 3, 4, 5), converters = {0:datestr}, delimiter = ',', unpack = True, encoding = 'utf-8')
close = close[0:40]
dates = dates[0:40]
#print(dates)first_monday = np.ravel(np.where(dates == 1))[-1]
#print(first_monday)
last_friday = np.ravel(np.where(dates == 5))[0]
#print(last_friday)day_indices = np.arange(last_friday, first_monday +1)[::-1]
#print(day_indices)
weeks_indices = np.split(day_indices, 5)
#print(weeks_indices)def summarize(a, o, h, c, l):monday_open = o[a[0]]day_high = np.max( np.take(h, a) )day_low = np.min( np.take(l, a) )friday_close = c[a[-1]]return('lux', monday_open, day_high, friday_close, day_low)weeksummary = np.apply_along_axis(summarize, 1, weeks_indices, open, high, close, low)
#print(' ****** open,  high,  close,  low \n', weeksummary)np.savetxt('cw36_lux.csv', weeksummary, delimiter = ',', fmt = '%s')

欢迎大家一起讨论学习。

原文地址:python3.7 统计某一只股票每天的开盘,收盘,最高,最低价格

Python统计某一只股票每天的开盘,收盘,最高,最低价格!相关推荐

  1. python3.7 统计某一只股票每天的开盘,收盘,最高,最低价格

    python3.7 统计某一只股票每天的开盘,收盘,最高,最低价格 模块:Numpy 码字不易,转载请注明出处!十分感谢! 准备工作: 抓取某一只股票的信息,每30min为一组数据,可以参考上一篇: ...

  2. python股票历史最低点_Python统计某一只股票每天的开盘,收盘,最高,最低价格!...

    模块:Numpy 码字不易,转载请注明出处!十分感谢! 准备工作: 抓取某一只股票的信息,每30min为一组数据,可以参考上一篇: Note: 只为演示如何统计,更精准的可以抓取每5min为一组数据 ...

  3. python统计字母空格个数_python统计字母、空格、数字等字符个数的实例

    如下所示: # -*- coding: utf-8 -*- # 要求:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. def count(s): count_a=count_z=c ...

  4. python统计元素个数_python怎么统计列表中元素的个数

    python统计列表中元素的个数的方法:可以通过count()方法来实现.该方法可以统计字符串中某个字符出现的次数,并返回子字符串在字符串中出现的次数.具体用法如:[count=List.count( ...

  5. 怎么用python统计字数_使用Python 统计高频字数的方法

    问题 (来自Udacity机器学习工程师纳米学位预览课程) 用 Python 实现函数 count_words(),该函数输入字符串 s 和数字 n,返回 s 中 n 个出现频率最高的单词.返回值是一 ...

  6. python统计字符串数字个数_python统计字符串中数字个数_后端开发

    python怎么随机生成奇数_后端开发 python随机生成奇数的方法:导入random模块,使用random模块生成随机数,然后判断生成的随机数是否为奇数,若是奇数就加入列表.使用此方法得到的列表包 ...

  7. Python统计在一个队列中有多少个正数,多少个负数

    如题,使用python统计在一个列表中的数字,有多少个正数,多少个负数. 思路一:使用列表生成式,生成新的列表 思路二:传统判断思维,累加 以下是Demo(代码基于python3.6): #!/usr ...

  8. Python统计网站访问日志log中的IP信息,并排序。。

    Python统计网站访问日志log中的IP信息,并排序,打印排名靠前的IP及访问量.示例代码如下: #!/usr/bin/env pythonipdict = {}file = open(" ...

  9. python英文高频句统计_使用Python 统计高频字数的方法

    问题 (来自Udacity机器学习工程师纳米学位预览课程) 用 Python 实现函数 count_words(),该函数输入字符串 s 和数字 n,返回 s 中 n 个出现频率最高的单词.返回值是一 ...

最新文章

  1. JavaScript强化教程-JS面向对象编程
  2. many-to-many
  3. 迎接 2019:软件开发新趋势预测
  4. 成功解决Error:invalid character in identifier
  5. LVS、Nginx、HAProxy工作环境中选择
  6. VC++制作DLL具体解释
  7. 【web开发学习笔记】Structs2 Action学习笔记(一个)
  8. python图像增强_Python图像的增强处理操作示例【基于ImageEnhance类】
  9. 浏览器卡怎么办_【十全十美】宽带断线、wifi连不上怎么办?自助排障帮到你!...
  10. fcpx插件:Beautiful Slideshow - 时尚简洁图片幻灯片开场
  11. Redis单机模式搭建
  12. 36岁青椒的“我”想对26岁读博的“你”说些话
  13. 超火的ipad procreate必备神仙笔刷资源打包下载
  14. python删除数据集中的空值_关于在python中如何使用pandas库读取excel表格后 删除含有空值的列...
  15. linux内核将新驱动添加到menuconfig菜单
  16. Autumn源码解读
  17. TensorFlow神经网络的激活函数
  18. mysql CONCAT函数 用于隐藏银行卡号码
  19. HeadFirst设计模式笔记——工厂模式
  20. Netty内置处理器整理

热门文章

  1. android sdl 插件,在Eclipse中配置SDL2.0 for Android
  2. 怎么加网上的精准引流?精准引流有没有小技巧?
  3. 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 dp
  4. 运维经理:如果连CentOS网络配置都不会,就收包袱走人吧
  5. 2014年AVAYA IP Office 合作伙伴大会在北京举行,协作成长,乐在德云
  6. c#键盘事件代码keychar
  7. 卢沟桥对于古代北京的作用
  8. CocosCreator Effect (Shader) - 斜条纹如何画
  9. 易经中的企业管理思想[转帖] 来源: 中大管理论坛 梁育民
  10. 2021年度训练联盟热身训练赛第五场