Python中的时间序列数据操作总结( 五 )


#shift the data
df_shifted = df.shift(5,axis=0)
df_shifted.head(10)
#shift the indexes
df_tshifted = df.tshift(periods = 4, freq = 'D')
df_tshifted.head(10)

Python中的时间序列数据操作总结

文章插图
df_shifted
Python中的时间序列数据操作总结

文章插图
df_tshifted
时间间隔转换
在 Pandas 中 , 操 to_period 函数允许将日期转换为特定的时间间隔 。可以获取具有许多不同间隔或周期的日期
df["Period"] = df["Date"].dt.to_period('W')
Python中的时间序列数据操作总结

文章插图
频率
Asfreq方法用于将时间序列转换为指定的频率 。
monthly_data = https://www.isolves.com/it/cxkf/yy/Python/2023-01-06/df.asfreq('M', method='ffill')
Python中的时间序列数据操作总结

文章插图
常用参数:
freq:数据应该转换到的频率 。这可以使用字符串别名(例如 , 'M'表示月 , 'H'表示小时)或pandas偏移量对象来指定 。
method:如何在转换频率时填充缺失值 。这可以是'ffill'(向前填充)或'bfill'(向后填充)之类的字符串 。
采样
resample可以改变时间序列频率并重新采样 。我们可以进行上采样(到更高的频率)或下采样(到更低的频率) 。因为我们正在改变频率 , 所以我们需要使用一个聚合函数(比如均值、最大值等) 。
resample方法的参数:
rule:数据重新采样的频率 。这可以使用字符串别名(例如 , 'M'表示月 , 'H'表示小时)或pandas偏移量对象来指定 。
#down sample
monthly_data = https://www.isolves.com/it/cxkf/yy/Python/2023-01-06/df.resample('M').mean()
Python中的时间序列数据操作总结

文章插图
#up sample
minute_data = https://www.isolves.com/it/cxkf/yy/Python/2023-01-06/data.resample('T').ffill()
Python中的时间序列数据操作总结

文章插图
百分比变化
使用pct_change方法来计算日期之间的变化百分比 。
df["PCT"] = df["Close"].pct_change(periods=2)
print(df["PCT"])
"""
Date
2020-01-02 NaN
2020-01-03 NaN
2020-01-06 0.021283
2020-01-07 0.024671
2020-01-08 0.005172
...
2022-12-19 -0.026634
2022-12-20 -0.013738
2022-12-21 0.012890
2022-12-22 -0.014154
2022-12-23 -0.003907
Name: PCT, Length: 752, dtype: float64
"""
总结
在Pandas和NumPy等库的帮助下 , 可以对时间序列数据执行广泛的操作 , 包括过滤、聚合和转换 。本文介绍的是一些在工作中经常遇到的常见操作 , 希望对你有所帮助 。
https://avoid.overfit.cn/post/4f8aab6d404e46bbbb712ad1497f5463
作者:Okan Yenigün

【Python中的时间序列数据操作总结】


推荐阅读