当前位置: 首页 > news >正文

pandas 笔记:shift

用于将数据系列或数据框中的数据按指定的位置移动。这对于某些时间序列分析特别有用,例如计算数据的变化量或滞后值

1 对Series/DataFrame数据进行移动

1.0 原始数据

import pandas as pd
import numpy as np
df1=pd.DataFrame(np.arange(12).reshape(3,4),columns=['a','b','c','d'],index=['A','B','C'])
df1'''a	b	c	d
A	0	1	2	3
B	4	5	6	7
C	8	9	10	11
'''

1.1  正数:向下移动,负数:向上移动

df1.shift(1)
'''a	b	c	d
A	NaN	NaN	NaN	NaN
B	0.0	1.0	2.0	3.0
C	4.0	5.0	6.0	7.0
'''df1.shift(-2)
'''a	b	c	d
A	8.0	9.0	10.011.0
B	NaN	NaN	NaN	NaN
C	NaN	NaN	NaN	NaN
'''

1.2 axis 沿着那个轴shift(默认0)

df1.shift(-2,axis=1)
'''a	b	c	d
A	2	3	NaN	NaN
B	6	7	NaN	NaN
C	10	11	NaN	NaN
'''

1.3 fill_value (NaN 用什么填充)

df1.shift(-2,axis=1,fill_value='-1')'''a	b	c	d
A	2	3	-1	-1
B	6	7	-1	-1
C	10	11	-1	-1
'''

1.4 对单列进行shift

df1['a'].shift(-2,fill_value='-1')
'''
A     8
B    -1
C    -1
Name: a, dtype: object
'''

2 DateTime shift

import pandas as pddf=pd.date_range(start='2023-09-13 10:00:00',end='2023-09-13 18:00:00',freq='1h')
df
'''
DatetimeIndex(['2023-09-13 10:00:00', '2023-09-13 11:00:00','2023-09-13 12:00:00', '2023-09-13 13:00:00','2023-09-13 14:00:00', '2023-09-13 15:00:00','2023-09-13 16:00:00', '2023-09-13 17:00:00','2023-09-13 18:00:00'],dtype='datetime64[ns]', freq='H')
'''

默认按照dataframe的frequency 进行shift

df.shift(2,)
'''
DatetimeIndex(['2023-09-13 12:00:00', '2023-09-13 13:00:00','2023-09-13 14:00:00', '2023-09-13 15:00:00','2023-09-13 16:00:00', '2023-09-13 17:00:00','2023-09-13 18:00:00', '2023-09-13 19:00:00','2023-09-13 20:00:00'],dtype='datetime64[ns]', freq='H')
'''

freq 手动指定frequency

df.shift(2,freq='1min')
'''
DatetimeIndex(['2023-09-13 10:02:00', '2023-09-13 11:02:00','2023-09-13 12:02:00', '2023-09-13 13:02:00','2023-09-13 14:02:00', '2023-09-13 15:02:00','2023-09-13 16:02:00', '2023-09-13 17:02:00','2023-09-13 18:02:00'],dtype='datetime64[ns]', freq='H')
'''

http://www.lryc.cn/news/168413.html

相关文章:

  • 解密(2023寒假每日一题 20)
  • 如何实现Web应用、网站状态的监控?
  • 手撕排序之堆排序
  • 【奇想星球】重磅!我们的AIGC共创社区平台上线了!
  • 2023年数维杯数学建模B题节能列车运行控制优化策略求解全过程文档及程序
  • Python--测试代码
  • CentOS 系列版本搭建 Nginx 服务
  • 目标检测YOLO实战应用案例100讲-基于机器视觉的输电线路小目标检测和缺 陷识别(下)
  • argparse--命令行参数解析库
  • elasticsearch4-文档操作
  • 阿里云服务器上CentOS 7.6使用rpm包安装MySQL 8.0.31
  • redis未授权漏洞
  • 详解3dMax中渲染线框的两种简单方法
  • Git - Git 工作流程
  • ARM如何利用PMU的Cycle Counter(时钟周期)来计算出CPU的时钟频率
  • 56资源网系统源码搭建知识付费-含源码
  • 【运营版】仿东郊到家上门服务app小程序开发同城美容家政预约推拿足浴SPA技师派单源码
  • uniapp项目实践总结(十五)使用websocket实现简易聊天室
  • 论文阅读之Learning and Generalization of Motor Skills by Learning from Demonstration
  • SpringCloud中的Eureka的集群配置
  • 10 Ubuntu下配置STMCubeMX与CLion IDE联合环境搭建(不包含下载CLion的教程)
  • 负载均衡原理及应用
  • 视频讲解|1033含sop的配电网重构(含风光可多时段拓展)
  • uni-app监听页面滚动
  • [字符串和内存函数]strcmp字符串函数的详解和模拟
  • zookeeper 常见问题处理
  • repo 命令
  • 一、 计算机网络概论
  • 从零学习开发一个RISC-V操作系统(一)丨计算机组成原理相关知识与RISC-V指令集简介
  • C++ - 异常介绍和使用