Python+pandas+每天股票涨了多少

2023-05-16

第一步:得到某支股票历年来的交易数据

方法见:https://blog.csdn.net/zwy_0309/article/details/108217342
在此,我使用以下脚本得到股票(代码:688022)从开始时间至现在的行情信息:
【脚本】

import tushare as ts
frame = ts.get_k_data('688022', start='2019-07-22')
print(frame)

【结果】
date open close high low volume code
0 2019-07-22 67.60 50.19 68.99 33.53 17681055.0 688022
1 2019-07-23 40.98 44.45 47.55 40.98 6996702.0 688022
2 2019-07-24 45.18 50.72 50.85 45.18 9718576.0 688022
3 2019-07-25 52.00 55.17 60.65 52.00 11794163.0 688022
4 2019-07-26 53.52 51.70 55.45 50.44 7550641.0 688022
… … … … … … … …
279 2020-09-10 38.01 36.79 38.60 36.79 906319.0 688022
280 2020-09-11 36.83 37.30 37.88 36.33 841580.0 688022
281 2020-09-14 37.88 38.43 39.01 37.88 1095643.0 688022
282 2020-09-15 38.66 38.48 38.92 38.22 760755.0 688022
283 2020-09-16 38.80 39.30 39.61 38.01 993362.0 688022
[284 rows x 7 columns]
【说明】

  • 以上结果中只展示了前5条及后5条数据,如果想加载全部的数据,则在代码中增加一句话:pd.set_option('display.max_rows', None)

  • 当然,有时列太多,也会显示不全,如果想显示全,则用pd.set_option('display.max_columns', None)

  • 如果列太多换行了,则增加一个设置语句:pd.set_option('display.width', 500),其中500是整体显示的宽度,这样有的列不会换行。

第二步:设置时间序列索引

【脚本】

frame = frame.set_index('date')
frame.index = pd.to_datetime(frame.index)

【结果】
open close high low volume code
date
2019-07-22 67.60 50.19 68.99 33.53 17681055.0 688022
2019-07-23 40.98 44.45 47.55 40.98 6996702.0 688022

【说明】
在显示上与上面不同,date不再是列标题,而是变成了索引,之前的位置索引0、1、2……不见了。
另外,还需要将索引列转换为时间类型,使用的函数为to_datetime()

第三步:得到每天收盘价比前一天收盘价上涨的费用

方法一:移动收盘价形成新的frame,再将两个frame的close列相减

【脚本】

frame1 = frame.shift(1)
print(frame1)
print(frame['close'] - frame1['close'])

【结果1】
open close high low volume code
date
2019-07-22 NaN NaN NaN NaN NaN NaN
2019-07-23 67.60 50.19 68.99 33.53 17681055.0 688022
2019-07-24 40.98 44.45 47.55 40.98 6996702.0 688022
【结果2】
date
2019-07-22 NaN
2019-07-23 -5.74

2020-09-15 0.05
2020-09-16 0.82

【说明】
1、 对比原frame数据与【结果1】,发现frame1的数据都发生了向下位移1天的情况,而索引没有变化。
2、 【结果2】即为每天收盘价减前一天收盘价的增加量,即为股票涨了多少。
仔细看会发现,这样的结果中,索引列数据不是连续的,而是只有交易日的数据。

方法二:移动索引列形成新的frame,再将两个frame的close列相减

【脚本】

frame2 = frame.shift(-1, freq='D')
print(frame2)
print(frame['close'] - frame2['close'])

【结果1】
open close high low volume code
date
2019-07-21 67.60 50.19 68.99 33.53 17681055.0 688022
2019-07-22 40.98 44.45 47.55 40.98 6996702.0 688022
2019-07-23 45.18 50.72 50.85 45.18 9718576.0 688022
【结果2】
date
2019-07-21 NaN
2019-07-22 5.74
2019-07-23 -6.27
2019-07-24 -4.45
2019-07-25 3.47

2020-09-11 NaN
2020-09-13 NaN
2020-09-14 -0.05
2020-09-15 -0.82
2020-09-16 NaN
【说明】

  • 索引列向后移动时,索引列自动补了一条记录‘2019-07-21’,由此可以想到,后面每一周同样会补两个日期,而这两个日期却不是交易日,在原frame中是不存在的。
  • 由【结果2】可以看出,因为日期索引的移动与自动补充,会导致非交易日数据相减结果为“NaN”。这一情况,在方法一中是不存在的。

总结

以上方法,比循环使用“第i行数据减第i-1行数据”的方法执行效率高。
So,记住**frame.shift()**函数!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python+pandas+每天股票涨了多少 的相关文章

随机推荐

  • octet和byte

    在看BLE协议时 xff0c 看到了数据包格式的定义 packet format xff0c 定义如下 xff1a Preamble 1 octet Access Address 4 octets PDU 2 to 257 octets C
  • 如何解决SSL/TLS握手过程中失败的错误?

    Fixes for the SSL TLS Handshake Failed error for both internet users and site owners It s time for another technical art
  • 学校人力资源管理系统——逻辑结构设计

    E R 图向关系模型的转换 第一步 把六个实体类型转化成五个模式 xff1a 教职工 职工编号 xff0c 姓名 xff0c 性别 xff0c 出生年份 xff0c 学历 xff0c 民族 xff0c 婚姻状态 xff0c 政治面貌 xff
  • 无线持续攻击(wireless duration attack)

    抓空口包时发现一种奇怪的ack帧 duration位长度是32767us 看到omnipeek将它定义为wireless duration attack 看起来是路由器回复设备的ack 而设备也是发了一个奇怪的pspoll帧 节能位置1 乱
  • .bashrc文件在哪?

    linux的bashrc文件在 home目录下 xff0c 但是是一个隐藏bai文件 xff0c 在文件管理器里面du按Ctrl 43 H即可显示 显示为 bashrc xff0c 前zhi面小点儿表示隐藏文件 xff09 也可以直接利用t
  • Cotex-M内核双堆栈指针MSP和PSP

    MSP和PSP 的含义是Main Stack Pointer 和Process Stack Pointer 在逻辑地址上他们都是R13 xff1b 权威手册上说的很清楚PSP主要是在Handler的模式下使用 xff0c MSP主要在线程模
  • TCP/IP协议栈之LwIP-pbuf

    pbuf结构体就是一个描述协议栈中数据包的数据结构 xff1a Main packet buffer struct struct pbuf next pbuf in singly linked pbuf chain struct pbuf
  • Linux使用wpa_supplicant手动配置连接WiFi

    wpa supplicant是Linux BSD Mac OSX和Windows的WPA的服务 支持WPA和WPA2 IEEE 802 11i RSN xff0c 它适用于台式机 笔记本和嵌入式系统 xff0c Supplicant是在客户
  • 使用python快速将主机字节序转为网络字节序

    1 进入python环境 这里以win10自带的wsl win10子系统为操作环境进入Python命令行 2 引入网络字节序标准库 这里使用Python自带的socket库 3 将待转换的主机数据使用socket htons 或者socke
  • ∏这个是什么符号?

    是各项连乘的运算符号 读大写的 xff08 pai xff09 例如 xff1a i 61 1 xff08 符号下面 xff09 n xff08 符号上面 xff09 ai 符号右面 表示a1 a2 an 符号下面表示右面式子可变参量的下限
  • python获取图片的颜色信息

    span class pun style font family none font size 14px span h1 style font family none font size 24px padding 5px margin 5p
  • Python:TypeError: 'int' object is not callable

    一个函数的部分代码如下 xff1a python view plain copy def loadData len 61 dataSet len trainingSet extend dataSet len 3 4 testSet exte
  • FreeRTOS — 消息队列

    以下内容转载自安富莱电子 xff1a http forum armfly com forum php FreeRTOS 的一个重要的通信机制 消息队列 xff0c 消息队列在实际项目中应用较多 1 消息队列 1 1 消息队列的概念及其作用
  • 学校人力资源管理系统——物理结构设计

    新 建学校人力资源管理系统 数据库 1 创建相关表 1 1 创建部门信息表 部门信息表的创建代码如下 xff0c 部门信息表在SQL中的信息显示如图6 1所示 create table 部门信息表 部门编号 char 6 not null
  • python 安装serial模块

    想用Python来实现对串口的控制 xff0c 写好了脚本 xff0c 现在将这个脚本拿到另外一个电脑上去运行 xff1b 运行时提示错误 xff0c 说是没有安装serial模块 xff0c 于是乎安装 pip install seria
  • Doxygen使用教程(个人总结)

    简介Doxygen 一 xff0e 什么是Doxygen Doxygen 是一个程序的文件产生工具 xff0c 可将程序中的特定批注转换成为说明文件 通常我们在写程序时 xff0c 或多或少都会写上批注 xff0c 但是对于其它人而言 xf
  • STM32F401 I2S(full duplex)全双工示例代码

    USER CODE BEGIN Header 64 file main c 64 brief Main program body This notice applies to any and all portions of this fil
  • 一、认识与学习Linux中的BASH 之 1.1 什么是bash

    1 1 什么是bash 1 1 1 什么是bash bash全称为The Bourne Again shell xff0c 是Bourne Shell的扩展 xff0c 是基于GUN构架发展出来的语言 xff0c 有很灵活和强大的编程接口
  • 阿里云ECS服务器环境搭建(1) —— ubuntu 16.04 图形界面的安装

    阿里云ECS服务器环境搭建 xff08 1 xff09 ubuntu 16 04 图形界面的安装 1 背景 在我们购买阿里云ECS服务器之后 xff0c 默认的系统环境是很干净的 xff0c 我购买的是ubuntu16 04 xff0c 远
  • Python+pandas+每天股票涨了多少

    第一步 xff1a 得到某支股票历年来的交易数据 方法见 xff1a https blog csdn net zwy 0309 article details 108217342 在此 xff0c 我使用以下脚本得到股票 xff08 代码