pandas中的shift()函数用法

本文详细介绍了Pandas库中DataFrame的shift()函数,该函数用于移动数据帧中的数据。shift()函数可以设置正数或负数的periods参数来向前或向后移动数据,同时可以选择性地使用freq参数移动时间序列索引。此外,还展示了axis参数如何影响数据移动的方向,以及如何通过改变freq参数实现日期索引的增减。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pandas中的shift()函数

语法:
shift(periods, freq, axis)
注释:

  1. period:表示移动的幅度,可以是正数,也可以是负数,默认值是1,1就表示移动一次,注意这里移动的都是数据,而索引是不移动的,移动之后没有对应值的,就赋值为NaN。

  2. freq: DateOffset, timedelta, or time rule string,可选参数,默认值为None,只适用于时间序列,如果这个参数存在,那么会按照参数值移动时间索引,而数据值没有发生变化。

3. axis: 轴向。0为垂,1为水平

import pandas as pd
import numpy as np
import datetime
df = pd.DataFrame(np.arange(16).reshape(4,4),columns=['A','B','C','D'],index=pd.date_range('20130101', periods=4))
df
A	B	C	D
2013-01-01	0	1	2	3
2013-01-02	4	5	6	7
2013-01-03	8	9	10	11
2013-01-04	12	13	14	15
#默认是axis = 0轴的设定,当period为正时向下移动
df.shift(2)
A	B	C	D
2013-01-01	NaN	NaN	NaN	NaN
2013-01-02	NaN	NaN	NaN	NaN
2013-01-03	0.0	1.0	2.0	3.0
2013-01-04	4.0	5.0	6.0	7.0
#默认是axis = 0轴的设定,当period为负时向上移动
df.shift(-2)
​
A	B	C	D
2013-01-01	8.0	9.0	10.0	11.0
2013-01-02	12.0	13.0	14.0	15.0
2013-01-03	NaN	NaN	NaN	NaN
2013-01-04	NaN	NaN	NaN	NaN
#axis = 1,当period为正向右,为负向左移动
df.shift(2,axis=1)
A	B	C	D
2013-01-01	NaN	NaN	0.0	1.0
2013-01-02	NaN	NaN	4.0	5.0
2013-01-03	NaN	NaN	8.0	9.0
2013-01-04	NaN	NaN	12.0	13.0
# frep参数决定索引为日期,正加负减
df.shift(freq=datetime.timedelta(1))
A	B	C	D
2013-01-02	0	1	2	3
2013-01-03	4	5	6	7
2013-01-04	8	9	10	11
2013-01-05	12	13	14	15
df.shift(freq=datetime.timedelta(-1))
A	B	C	D
2012-12-31	0	1	2	3
2013-01-01	4	5	6	7
2013-01-02	8	9	10	11
2013-01-03	12	13	14	15

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值