python resample转换日K数据 (二)

2023-11-08 04:40
文章标签 python 数据 转换 resample

本文主要是介绍python resample转换日K数据 (二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

通过PythonAPI获取股票数据

聚宽

在这里插入图片描述

在这里插入图片描述

代码示例
获取平安银行的股票信息


from jqdatasdk import *
auth('','')#获取平安银行按1分钟为周期以“2015-01-30 14:00:00”为基础前4个时间单位的数据
df = get_price('000001.XSHE', end_date='2015-01-30 14:00:00',count=4, frequency='minute', fields=['open','close','high','low','volume','money'])
print(df)

在这里插入图片描述

可以看到官网有对每个API的介绍:
XSHG-上海证券交易所;XSHE-深圳证券交易所。

如何获取所有A股的行情数据


from jqdatasdk import *
import time#将所有股票列表转换成数组
stocks = list(get_all_securities(['stock']).index)for stock_code in stocks:print("正在获取股票行情数据,股票代码为:", stock_code)df = get_price(stock_code, end_date='2021-05-30 14:00:00',count=5, frequency='1d', fields=['open','close','high','low','volume','money'])print(df)time.sleep(3)

使用Resample函数转换 “”“日K”数据

一、什么是resample函数?
它是Python数据分析库Pandas的方法函数。

它主要用于转换时间序列的频次。可以做一些统计汇总的工作。

什么叫转换时间序列的频次呢?

比如说股票的日k和周k,

假设我只能获取到股票日K的数据,比如说11月1号到11月5号,那怎么样将它转换为以周为单位的K线呢?

在这里插入图片描述
首先我们要明确,周K的开盘、收盘、最高、最低是什么。每周的开盘价是当周第一天的开盘价,收盘价是当周最后一天的收盘价,它的最高价是这周最高的价格,最低价是本周所有最低价中最低的价格。所以你去看炒股平台,它的周k都是以周五的交易日为记录的时间点位置。开盘、收盘、最高、最低是按照我刚刚讲解的这个规则来计算的。至于月K、年K的选取规则也是一样的。月K的周期是一个月,年K的周期是一年。

这个计算准确性你也可以通过网上的数据进行验证。这个计算规则,包括开盘、收盘、最高、最低的计算,收拾resample函数可以做到的事情。此外Resample还有个功能,就是做统计汇总,比如说我想计算一支股票总的周成交量,就可以使用Resample.sum函数去把周一到周五的成交量加起来。

为了方便大家记忆 ,你也可以把resample理解为Excel表格中的透视表功能。你可以按照日期做各种筛选和汇总统计的。最重要的是他可以按照日期。

二、实战Resample函数
1.日K 转换为 周K
Resample是属于Pandas DataFrame下面的方法。
这里我们只对2个常用参数讲解,一个是rule,另一个是closed。

  • rule表示的是你放一个什么样的周期性指标在里面,用m代表Month,Y代表Year,w代表Week,
  • closed代表你取哪一个分界线,举例来说,比如说我把日k转换为周k,到底我是取周一为分界线还是周五为分界线呢?这就是通过closed来确定的。
from jqdatasdk import *
import pandas as pd#获取平安银行按1分钟为周期以“2015-01-30 14:00:00”为基础前4个时间单位的数据
df = get_price('000001.XSHE', end_date='2015-01-30 14:00:00',count=20, frequency='1d', fields=['open','close','high','low','volume','money'])
print(df)

在这里插入图片描述

可以看到获取到了4月28号到5月28号的所有数据。为了更方便理解 我们再添加一列数据,就是当前日期是星期几的列

from jqdatasdk import *
import pandas as pd#获取平安银行按1分钟为周期以“2015-01-30 14:00:00”为基础前4个时间单位的数据
df = get_price('000001.XSHE', end_date='2015-01-30 14:00:00',count=20, frequency='1d', fields=['open','close','high','low','volume','money'])
df["weekday"]=df.index.weekday
print(df)

在这里插入图片描述

这里0代表周一,这里如何转换为按“周”统计呢
.volume(成交量)和money(成交额)转换为总成交量和总成交额

from jqdatasdk import *
import pandas as pd#获取平安银行按1分钟为周期以“2015-01-30 14:00:00”为基础前4个时间单位的数据
df = get_price('000001.XSHE', end_date='2015-01-30 14:00:00',count=20, frequency='1d', fields=['open','close','high','low','volume','money'])
df["weekday"]=df.index.weekday
print(df)df_week = pd.DataFrame()
df_week['open'] = df['open'].resample('W').first()
df_week['close'] = df['close'].resample('W').last()
df_week['high'] = df['high'].resample('W').max()
df_week['low'] = df['low'].resample('W').min()
df_week['volume(sum)'] = df['volume'].resample('W').sum()
df_week['money(sum)'] = df['money'].resample('W').sum()print(df_week)

在这里插入图片描述

可以看到这里的2021-05-30是一个礼拜的最后一天。它对应的开盘价确实是这个数字。说明我们计算的周K数据是正确的。

收盘价就是每周收盘价最后一天的数据。

最高价就是每周收盘价的最大值。

最低价就是每周收盘价的最小值。

日K 转换为 月K

假设我有一年的数据,如果想转换为月K应该怎么转?
只需要改2个地方:

  • 添加start_date获取到一整年的数据
  • 将resample的参数改为M即可,M代表Month
#获取平安银行按1分钟为周期以“2015-01-30 14:00:00”为基础前4个时间单位的数据
df = get_price('000001.XSHE', end_date='2021-05-30 14:00:00', start_date='2020-05-30',frequency='1d', fields=['open','close','high','low','volume','money'])
df["weekday"]=df.index.weekday
print(df)df_week = pd.DataFrame()
df_week['open'] = df['open'].resample('M').first()
df_week['close'] = df['close'].resample('M').last()
df_week['high'] = df['high'].resample('M').max()
df_week['low'] = df['low'].resample('M').min()
df_week['volume(sum)'] = df['volume'].resample('M').sum()
df_week['money(sum)'] = df['money'].resample('M').sum()print(df_week)

在这里插入图片描述

这篇关于python resample转换日K数据 (二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/367934

相关文章

Python函数作用域示例详解

《Python函数作用域示例详解》本文介绍了Python中的LEGB作用域规则,详细解析了变量查找的四个层级,通过具体代码示例,展示了各层级的变量访问规则和特性,对python函数作用域相关知识感兴趣... 目录一、LEGB 规则二、作用域实例2.1 局部作用域(Local)2.2 闭包作用域(Enclos

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os

关于集合与数组转换实现方法

《关于集合与数组转换实现方法》:本文主要介绍关于集合与数组转换实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、Arrays.asList()1.1、方法作用1.2、内部实现1.3、修改元素的影响1.4、注意事项2、list.toArray()2.1、方

使用Python实现可恢复式多线程下载器

《使用Python实现可恢复式多线程下载器》在数字时代,大文件下载已成为日常操作,本文将手把手教你用Python打造专业级下载器,实现断点续传,多线程加速,速度限制等功能,感兴趣的小伙伴可以了解下... 目录一、智能续传:从崩溃边缘抢救进度二、多线程加速:榨干网络带宽三、速度控制:做网络的好邻居四、终端交互

Python中注释使用方法举例详解

《Python中注释使用方法举例详解》在Python编程语言中注释是必不可少的一部分,它有助于提高代码的可读性和维护性,:本文主要介绍Python中注释使用方法的相关资料,需要的朋友可以参考下... 目录一、前言二、什么是注释?示例:三、单行注释语法:以 China编程# 开头,后面的内容为注释内容示例:示例:四

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

python常用的正则表达式及作用

《python常用的正则表达式及作用》正则表达式是处理字符串的强大工具,Python通过re模块提供正则表达式支持,本文给大家介绍python常用的正则表达式及作用详解,感兴趣的朋友跟随小编一起看看吧... 目录python常用正则表达式及作用基本匹配模式常用正则表达式示例常用量词边界匹配分组和捕获常用re

MyBatisPlus如何优化千万级数据的CRUD

《MyBatisPlus如何优化千万级数据的CRUD》最近负责的一个项目,数据库表量级破千万,每次执行CRUD都像走钢丝,稍有不慎就引起数据库报警,本文就结合这个项目的实战经验,聊聊MyBatisPl... 目录背景一、MyBATis Plus 简介二、千万级数据的挑战三、优化 CRUD 的关键策略1. 查

python实现对数据公钥加密与私钥解密

《python实现对数据公钥加密与私钥解密》这篇文章主要为大家详细介绍了如何使用python实现对数据公钥加密与私钥解密,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录公钥私钥的生成使用公钥加密使用私钥解密公钥私钥的生成这一部分,使用python生成公钥与私钥,然后保存在两个文